Loodud lokaatide loendi hankimine
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.