Loodud lokaatide loendi hankimine

Lehekülg uuendatud :
Lehe loomise kuupäev :

Kontrollimise keskkond

Windows
  • Windows 11
Ühtsuse toimetaja
  • 2021.3.12f1
Sisendsüsteem (Unity Technologies)
  • 1.4.4
Lokaliseerimine (Unity Technologies)
  • 1.3.2

Selle näpunäite eeltingimused

Selle vihje kirjeldamise eelduseks on eelnevalt tehtud järgmised sätted.

Meie näpunäidete eesmärgid

Kuvab rippmenüüst kasutajaliideses vastavate lokaatide loendi ja lülitab kuvatava teksti sisse, et see vastaks kasutaja valitud lokaadile.

Eelduseks olevad teadmised ja ettevalmistus

See näpunäide eeldab järgmise teksti lokaliseerimist: Esiteks vaadake lokaliseeritud teksti kuvamiseks ettevalmistamiseks järgmisi näpunäiteid.

Lokaat muudab rippmenüü paigutust

Pakub ripploendit lokaatide loendi kuvamiseks. Teil on vaja ainult kuvada ja valida, seega veenduge, et kasutajaliidese parameetrid on sobivalt seadistatud.

Lokaatide loendi hankimine

Loendi lokaatidest LocalizationSettings.AvailableLocales.Locales , mis on loodud rakenduses . Kui kasutate seda ja seate selle stseeni alguses olevale rippmenüüle, on kõik korras. Kuid lähtestamine ei pruugi mängu alustamisel olla lõpule jõudnud Localization , nii et peate võib-olla ootama, kuni see lõpeb.

Esmalt looge skript. DropDownEvent Jätke nimi nimeks .

Skript näeb välja selline:

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 Meetod teostab töötlemist stseeni alguses, kuid sel hetkel Localization ei pruugi initsialiseerimine olla lõpule viidud. await LocalizationSettings.InitializationOperation.Task Oodake, kuni lähtestamine lõpeb. await , nii et Start palun lisage see meetodile async .

LocalizationSettings.AvailableLocales.Locales Järgmisena sisaldab see teie loodud lokaatide loendit, nii et töödelge nii foreach palju lokaate kui soovite. Dropdown.OptionData Määrake Dropdown lokaadi nimi väärtusele ja lisage see jaotisse .

Rippmenüüst praeguse lokaadi valimiseks Dropdown.value otsige atribuudist sihtlokaati ja määrake register.

See on loendi loomise lõpp, kuid soovin kaasata ka protsessi, mis muudab lokaati, kui rippmenüü üksus on valitud. onValueChanged Lisab sündmusele lokaadi vahetamise. See on sama, mis eelmine ots.

Manustage loodud skript rippmenüüle.

Käivitage ja kontrollige

Proovige mängu käivitada, et seda kontrollida. On aeg, mil lokaatide loendit ei määrata kohe pärast mängu algust, Localization sest seda ei käivitata.

Mõne aja pärast peaksite nägema rippmenüüs registreeritud lokaatide loendit. Kui proovite üksusi vahetada, peaksite nägema, et teksti sisu muutub.