Uzyskiwanie listy utworzonych przez siebie ustawień regionalnych

Strona zaktualizowana :
Data utworzenia strony :

Środowisko weryfikacji

Windows
  • Okna 11
Edytor Unity
  • 2021.3.12f1
System wejściowy (Unity Technologies)
  • 1.4.4
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.

Cele naszych wskazówek

Wyświetla listę odpowiednich ustawień regionalnych w rozwijanym interfejsie użytkownika i przełącza wyświetlany tekst, aby dopasować go do ustawień regionalnych wybranych przez użytkownika.

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.

Umiejscowienie listy rozwijanej zmiany ustawień regionalnych

Zawiera listę rozwijaną, aby wyświetlić listę ustawień regionalnych. Musisz tylko mieć możliwość wyświetlania i wybierania, więc upewnij się, że parametry interfejsu użytkownika są odpowiednio ustawione.

Uzyskiwanie listy ustawień regionalnych

Możesz uzyskać listę ustawień regionalnych LocalizationSettings.AvailableLocales.Locales utworzonych w programie . Jeśli użyjesz tej opcji i ustawisz ją na liście rozwijanej na początku sceny, wszystko jest w porządku. Jednak inicjowanie mogło nie zostać ukończone po Localization uruchomieniu gry, więc może być konieczne oczekiwanie na jej ukończenie.

Najpierw utwórz skrypt. DropDownEvent Pozostaw nazwę jako .

Skrypt wygląda tak:

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

public class DropDownEvent : MonoBehaviour
{
  // 最初のフレームアップデートの前に開始が呼び出されます
  async void Start()
  {
    // Localization の初期化が完了するまで待機します
    await LocalizationSettings.InitializationOperation.Task;

    // 処理対象の Dropdown コンポーネントを取得します
    var dropdownLocale = GetComponent<Dropdown>();
    dropdownLocale.options.Clear();

    // LocalizationSettings.AvailableLocales.Locales からロケール一覧を取得してオプションを追加します
    foreach (var locale in LocalizationSettings.AvailableLocales.Locales)
    {
      dropdownLocale.options.Add(new Dropdown.OptionData(locale.name));
    }

    // 初期選択されているロケールのインデックスを取得して選択します
    dropdownLocale.value = LocalizationSettings.AvailableLocales.Locales.IndexOf(LocalizationSettings.SelectedLocale);

    // ドロップダウンのアイテムが選択されたときにロケールを変更します
    dropdownLocale.onValueChanged.AddListener((index) =>
    {
      LocalizationSettings.SelectedLocale = LocalizationSettings.AvailableLocales.Locales[index];
    });
  }
}

Start Metoda wykonuje przetwarzanie na początku sceny, ale w tym momencie Localization inicjalizacja mogła nie zostać zakończona. await LocalizationSettings.InitializationOperation.Task Poczekaj na zakończenie inicjalizacji. await , więc Start proszę dodać go do async metody.

LocalizationSettings.AvailableLocales.Locales Następnie zawiera listę utworzonych ustawień regionalnych, więc foreach przetwarzaj dowolną liczbę ustawień regionalnych. Dropdown.OptionData Ustaw Dropdown nazwę ustawień regionalnych na i dodaj ją do .

Aby wybrać Dropdown.value bieżące ustawienia regionalne z listy rozwijanej, wyszukaj docelowe ustawienia regionalne we właściwości i ustaw indeks.

To koniec tworzenia listy, ale chcę również uwzględnić proces, który zmienia ustawienia regionalne po wybraniu elementu listy rozwijanej. onValueChanged Dodaje przełączanie ustawień regionalnych do wydarzenia. Jest to to samo, co poprzednia wskazówka.

Dołącz utworzony skrypt do listy rozwijanej.

Uruchom i zweryfikuj

Spróbuj uruchomić grę, aby to sprawdzić. Zdarza się, że lista ustawień regionalnych nie jest ustawiana natychmiast po rozpoczęciu gry, Localization ponieważ nie jest inicjowana.

Po pewnym czasie powinieneś być w stanie zobaczyć listę zarejestrowanych ustawień regionalnych w menu rozwijanym. Jeśli spróbujesz przełączyć elementy, powinieneś być w stanie zobaczyć, że zawartość tekstu się zmienia.