Pridobivanje seznama območnih nastavitev, ki ste jih ustvarili

Stran posodobljena :
Datum ustvarjanja strani :

Okolje za preverjanje

Windows
  • Windows 11
Urejevalnik Unity
  • 2021.3.12F1
Vhodni sistem (Unity Technologies)
  • 1.4.4
Lokalizacija (tehnologije Unity)
  • 1.3.2

Predpogoji za ta nasvet

Naslednje nastavitve so bile vnaprej narejene kot premisa za opis tega nasveta.

Cilji naših nasvetov

Prikaže seznam ustreznih območnih nastavitev v spustnem uporabniškem vmesniku in preklopi prikazano besedilo, da se ujema z območnimi nastavitvami, ki jih je izbral uporabnik.

Predpogojno znanje in priprava

Ta namig predvideva lokalizacijo tega besedila: Najprej si oglejte naslednje nasvete za pripravo na prikaz lokaliziranega besedila.

Spustna postavitev spremembe območnih nastavitev

Omogoča spustni meni za prikaz seznama območnih nastavitev. Znati morate le prikazati in izbrati, zato se prepričajte, da so parametri uporabniškega vmesnika ustrezno nastavljeni.

Pridobivanje seznama območnih nastavitev

Seznam območnih nastavitev LocalizationSettings.AvailableLocales.Locales , ustvarjenih v . Če to uporabite in ga nastavite na spustni meni na začetku prizora, ste v redu. Vendar se inicializacija morda ni dokončala, ko Localization začnete igro, zato boste morda morali počakati, da se konča.

Najprej ustvarite skript. DropDownEvent Pustite ime kot .

Scenarij izgleda takole:

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 izvaja obdelavo na začetku prizora, vendar na tej točki Localization inicializacija morda ni končana. await LocalizationSettings.InitializationOperation.Task Počakajte, da se inicializacija konča. await , zato Start ga dodajte metodi async .

LocalizationSettings.AvailableLocales.Locales Nato vsebuje seznam področnih nastavitev, ki ste jih ustvarili, zato foreach obdelajte poljubno število območnih nastavitev. Dropdown.OptionData Nastavite Dropdown ime območnih nastavitev na in ga dodajte v .

Če želite v spustnem meniju izbrati Dropdown.value trenutne področne nastavitve, v lastnosti poiščite ciljne področne nastavitve in nastavite indeks.

To je konec ustvarjanja seznama, vendar želim vključiti tudi postopek, ki spremeni območne nastavitve, ko je izbran spustni element. onValueChanged Doda območne nastavitve za preklapljanje med dogodkom. To je enako kot prejšnji nasvet.

Spustnemu meniju priložite ustvarjeni skript.

Zaženi in preveri

Poskusite zagnati igro, da jo preverite. Obstaja čas, ko seznam območnih nastavitev ni nastavljen takoj po začetku igre, Localization ker ni inicializiran.

Po določenem času bi si morali ogledati seznam območnih nastavitev, registriranih v spustnem meniju. Če poskusite preklapljati med elementi, boste videli, da se vsebina besedila spremeni.