Sie können das Gebietsschema jederzeit ändern

Diese Seite wurde aktualisiert :
Erstellungsdatum der Seite :

Verifizierungsumgebung

Fenster
  • Windows 11
Unity-Editor
  • 2021.3.12f1
Eingabesystem (Unity Technologies)
  • 1.4.3
Lokalisierung (Unity Technologies)
  • 1.3.2

Voraussetzungen für diesen Tipp

Die folgenden Einstellungen wurden im Vorfeld als Prämisse für die Beschreibung dieses Tipps vorgenommen.

Erforderliche Kenntnisse und Vorbereitung

Bei diesem Tipp wird davon ausgegangen, dass der folgende Text lokalisiert wird: Beachten Sie zunächst die folgenden Tipps, um die Anzeige von lokalisiertem Text vorzubereiten.

Platzieren von Schaltflächen zum Ändern des Gebietsschemas

Wenn Sie es im Unity-Editor ausführen, können Sie das Gebietsschema in der oberen rechten Ecke des Bildschirms ändern, aber nachdem Sie das Spiel erstellt haben, hat es diese Funktion nicht und Sie müssen es selbst vorbereiten. Dieses Mal werde ich eine Schaltfläche platzieren, um zwischen den drei Sprachen "Japanisch (ja)", "Englisch (en)" und "Spanisch (es)" zu wechseln, und klicken, um sie zu wechseln.

Skripterstellung für Schaltflächen

Stellen Sie sicher, dass die Zielmethode aufgerufen wird, wenn Sie auf die Schaltfläche klicken. Dies ist ein Allzweckverfahren, daher werde ich die Details weglassen. In den folgenden Tipps finden Sie detaillierte Anweisungen.

ButtonEvent Erstellen Sie ein Skript mit dem Namen .

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()
  {
  }
}

Weisen Sie jede Methode einem Schaltflächenklick zu.

Behandeln von Gebietsschemaänderungen

Ändern Sie den Code wie folgt:

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");
  }
}

Die Änderung selbst ist einfach LocalizationSettings.SelectedLocale und kann durch einfaches Festlegen des Ziels Locale in der Eigenschaft geändert werden. Locale Locale.CreateLocale kann erstellt werden, indem der Name des Gebietsschemas in der Methode festgelegt wird.

Da der Gebietsschemaänderungsprozess jedoch asynchron ist, bedeutet der nächste Prozess, der festgelegt wird, nicht,LocalizationSettings.SelectedLocale dass das Gebietsschema bereits vollständig gewechselt wurde. Seien Sie vorsichtig, wenn Sie gebietsschemaabhängige Vorgänge ausführen.

Ausführen und Überprüfen

Das ist alles, was dazu gehört, also führen Sie es bitte aus und überprüfen Sie die Bewegung. In der oberen rechten Ecke des Spielbildschirms kannst du sehen, dass die verschiedenen Ressourcen dynamisch wechseln, genauso wie wenn du das Gebietsschema änderst.