Zmień ustawienia regionalne w dowolnym momencie

Strona zaktualizowana :
Data utworzenia strony :

Środowisko weryfikacji

Windows
  • Okna 11
Edytor Unity
  • 2021.3.12f1
System wejściowy (Unity Technologies)
  • 1.4.3
Lokalizacja (Unity Technologies)
  • 1.3.2

Wymagania wstępne dotyczące tej porady

Poniższe ustawienia zostały wcześniej wprowadzone jako przesłanka do opisu tej wskazówki.

Wstępna wiedza i przygotowanie

Ta wskazówka zakłada lokalizację następującego tekstu: Najpierw zapoznaj się z poniższymi wskazówkami, aby przygotować się do wyświetlania zlokalizowanego tekstu.

Umieszczanie przycisków do zmiany ustawień regionalnych

Jeśli uruchomisz go w Unity Editor, możesz zmienić ustawienia regionalne w prawym górnym rogu ekranu, ale po zbudowaniu gry nie ma tej funkcji i musisz ją przygotować samodzielnie. Tym razem umieszczę przycisk do przełączania się między trzema językami "japoński (ja)", "angielski (en)" i "hiszpański (es)" i kliknij, aby je przełączyć.

Tworzenie skryptów dla przycisków

Upewnij się, że metoda docelowa jest wywoływana po kliknięciu przycisku. Jest to procedura ogólnego przeznaczenia, więc pominę szczegóły. Zapoznaj się z poniższymi wskazówkami, aby uzyskać szczegółowe instrukcje.

ButtonEvent Utwórz skrypt o nazwie .

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

Przypisz każdą metodę do kliknięcia przycisku.

Obsługa zmian ustawień regionalnych

Zmodyfikuj kod w następujący sposób:

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

Sama zmiana jest prosta LocalizationSettings.SelectedLocale i można ją przełączyć, po prostu ustawiając cel Locale we właściwości. Locale Locale.CreateLocale można utworzyć, ustawiając nazwę ustawień regionalnych w metodzie.

Ponieważ jednak proces zmiany ustawień regionalnych jest asynchroniczny, następny proces, który zostanie ustawiony, nie oznacza,LocalizationSettings.SelectedLocale że ustawienia regionalne zostały już całkowicie przełączone. Należy zachować ostrożność podczas wykonywania operacji zależnych od ustawień regionalnych.

Uruchom i zweryfikuj

To wszystko, więc uruchom go i sprawdź ruch. W prawym górnym rogu ekranu gry widać, że różne zasoby przełączają się dynamicznie w taki sam sposób, jak po zmianie ustawień regionalnych.