Obțineți o listă de setări regionale pe care le-ați creat
Mediul de verificare
- Windows
-
- Ferestre 11
- Unity Editor
-
- 2021.3.12F1
- Sistem de intrare (Unity Technologies)
-
- 1.4.4
- Localizare (Unity Technologies)
-
- 1.3.2
Cerințe preliminare pentru acest sfat
Următoarele setări au fost făcute în avans ca premisă pentru descrierea acestui sfat.
Obiectivele sfaturilor noastre
Afișează o listă de setări regionale corespunzătoare în interfața verticală și comută textul afișat pentru a corespunde setărilor regionale selectate de utilizator.
Cunoștințe și pregătire prealabile
Acest sfat presupune localizarea următorului text: În primul rând, consultați următoarele sfaturi pentru a vă pregăti să afișați text localizat.
Poziționarea drop-down pentru modificarea setărilor regionale
Oferă o listă verticală pentru a afișa o listă de setări regionale. Trebuie doar să puteți afișa și selecta, deci asigurați-vă că parametrii UI sunt setați corespunzător.
Obțineți o listă de setări regionale
Puteți obține o listă de setări regionale LocalizationSettings.AvailableLocales.Locales
create în .
Dacă utilizați acest lucru și îl setați la meniul derulant de la începutul scenei, sunteți OK.
Cu toate acestea, este posibil ca inițializarea să nu se fi finalizat atunci când Localization
începeți jocul, deci poate fi necesar să așteptați să se finalizeze.
Mai întâi, creați un script. DropDownEvent
Lăsați numele ca .
Scenariul arată astfel:
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 efectuează procesarea la începutul scenei, dar în acest moment Localization
, este posibil ca inițializarea să nu fi fost finalizată.
await LocalizationSettings.InitializationOperation.Task
Așteptați finalizarea inițializării.
await
, așa că Start
vă rugăm să o adăugați la async
metodă.
LocalizationSettings.AvailableLocales.Locales
Apoi, conține o listă de setări regionale pe care le-ați creat, deci foreach
procesați câte setări regionale doriți.
Dropdown.OptionData
Setați Dropdown
numele setărilor regionale la și adăugați-l la .
Pentru a selecta Dropdown.value
setările regionale curente din lista verticală, căutați setările regionale țintă în proprietate și setați indexul.
Acesta este sfârșitul creării listei, dar doresc, de asemenea, să includ un proces care modifică setările regionale atunci când este selectat elementul vertical.
onValueChanged
Adaugă comutarea setărilor regionale la eveniment. Acesta este același lucru cu sfatul anterior.
Atașați scriptul pe care l-ați creat la lista verticală.
Rulați și verificați
Încercați să rulați jocul pentru a-l verifica.
Există un moment în care lista de setări regionale nu este setată imediat după începerea jocului, Localization
deoarece nu este inițializată.
După puțin timp, ar trebui să puteți vedea lista de localizări înregistrate în meniul derulant. Dacă încercați să comutați între elemente, ar trebui să puteți vedea că conținutul textului se modifică.