Skift landestandard når som helst

Side opdateret :
Dato for oprettelse af side :

Miljø til bekræftelse

Windows
  • Windows 11
Enhedslistens redaktør
  • 2021.3.12f1
Inputsystem (Unity-teknologier)
  • 1.4.3
Lokalisering (Unity Technologies)
  • 1.3.2

Forudsætninger for dette tip

Følgende indstillinger er foretaget på forhånd som en forudsætning for beskrivelsen af dette tip.

Forudsætning viden og forberedelse

Dette tip forudsætter lokalisering af følgende tekst: Se først følgende tip for at forberede visning af lokaliseret tekst.

Placering af knapper til ændring af landestandard

Hvis du kører det i Unity Editor, kan du ændre landestandarden i øverste højre hjørne af skærmen, men efter at have bygget spillet har det ikke den funktion, og du skal selv forberede det. Denne gang vil jeg placere en knap for at skifte mellem de tre sprog "japansk (ja)", "engelsk (en)" og "spansk (es)" og klikke for at skifte dem.

Scripting til knapper

Sørg for, at målmetoden kaldes, når du klikker på knappen. Dette er en generel procedure, så jeg vil udelade detaljerne. Se følgende tip for detaljerede instruktioner.

ButtonEvent Opret et script med navnet .

using UnityEngine;

public class ButtonEvent : MonoBehaviour
{
  /// <summary>Japanese (ja) ボタンをクリックしたとき。</summary>
  public void OnClickJa()
  {
  }

  /// <summary>English (en) ボタンをクリックしたとき。</summary>
  public void OnClickEn()
  {
  }

  /// <summary>Spanish (es) ボタンをクリックしたとき。</summary>
  public void OnClickEs()
  {
  }
}

Tildel hver metode til et klik på en knap.

Håndtering af ændringer af landestandard

Koden ændres på følgende måde:

using UnityEngine;
using UnityEngine.Localization;
using UnityEngine.Localization.Settings;

public class ButtonEvent : MonoBehaviour
{
  /// <summary>Japanese (ja) ボタンをクリックしたとき。</summary>
  public void OnClickJa()
  {
    LocalizationSettings.SelectedLocale = Locale.CreateLocale("ja");
  }

  /// <summary>English (en) ボタンをクリックしたとき。</summary>
  public void OnClickEn()
  {
    LocalizationSettings.SelectedLocale = Locale.CreateLocale("en");
  }

  /// <summary>Spanish (es) ボタンをクリックしたとき。</summary>
  public void OnClickEs()
  {
    LocalizationSettings.SelectedLocale = Locale.CreateLocale("es");
  }
}

Selve ændringen er enkel LocalizationSettings.SelectedLocale og kan skiftes ved blot at indstille målet Locale i ejendommen. Locale Locale.CreateLocale kan oprettes ved at indstille navnet på landestandarden i metoden.

Men da landestandardændringsprocessen er asynkron, betyder den næste proces, der indstilles, ikke,LocalizationSettings.SelectedLocale at landestandarden allerede er skiftet helt. Vær forsigtig, hvis du udfører landestandardafhængige handlinger.

Kør og bekræft

Dette er alt, hvad der er til det, så kør det og kontroller bevægelsen. I øverste højre hjørne af spilskærmen kan du se, at de forskellige ressourcer skifter dynamisk på samme måde, som når du ændrer landestandarden.