Sukurkite lokalių sąrašą
Tikrinimo aplinka
- Windows
-
- Langai 11
- "Unity" redaktorius
-
- 2021.3.12f1
- Įvesties sistema ("Unity Technologies")
-
- 1.4.4
- Lokalizavimas ("Unity Technologies")
-
- 1.3.2
Būtinos šio patarimo sąlygos
Šie nustatymai buvo atlikti iš anksto kaip šio patarimo aprašymo prielaida.
Mūsų patarimų tikslai
Išplečiamojoje vartotojo sąsajoje rodo atitinkamų lokalių sąrašą ir perjungia rodymo tekstą, kad jis atitiktų vartotojo pasirinktą lokalę.
Būtinos žinios ir pasirengimas
Šiame patarime daroma prielaida, kad lokalizuojamas šis tekstas: Pirmiausia perskaitykite šiuos patarimus, kaip pasiruošti rodyti lokalizuotą tekstą.
Lokalės keitimo išplečiamoji paskirties vieta
Pateikia išplečiamąjį sąrašą, kuriame rodomas lokalių sąrašas. Jums tereikia turėti galimybę rodyti ir pasirinkti, todėl įsitikinkite, kad vartotojo sąsajos parametrai nustatyti tinkamai.
Lokalių sąrašo gavimas
Galite gauti lokalių LocalizationSettings.AvailableLocales.Locales
, sukurtų .
Jei naudosite tai ir scenos pradžioje nustatysite išskleidžiamąjį meniu, viskas bus gerai.
Tačiau inicijavimas gali būti nebaigtas, kai Localization
pradedate žaidimą, todėl gali tekti palaukti, kol jis bus baigtas.
Pirmiausia sukurkite scenarijų. DropDownEvent
Palikite pavadinimą kaip .
Scenarijus atrodo taip:
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
Metodas atlieka apdorojimą scenos pradžioje, tačiau šiuo metu Localization
, inicijavimas gali būti nebaigtas.
await LocalizationSettings.InitializationOperation.Task
Palaukite, kol bus baigta iniciacija.
await
, todėl Start
pridėkite jį prie async
metodo.
LocalizationSettings.AvailableLocales.Locales
Toliau pateikiamas jūsų sukurtų lokalių sąrašas, todėl foreach
apdorokite tiek lokalių, kiek norite.
Dropdown.OptionData
Nustatykite Dropdown
lokalės pavadinimą į ir įtraukite jį į .
Norėdami išplečiamajame sąraše pasirinkti Dropdown.value
dabartinę lokalę, ypatybėje ieškokite tikslinės lokalės ir nustatykite indeksą.
Tai yra sąrašo kūrimo pabaiga, bet taip pat noriu įtraukti procesą, kuris pakeičia lokalę, kai pasirenkamas išplečiamasis elementas.
onValueChanged
Prideda lokalės perjungimą į įvykį. Tai tas pats, kas ankstesnis patarimas.
Pridėkite sukurtą scenarijų prie išskleidžiamojo meniu.
Paleiskite ir patikrinkite
Pabandykite paleisti žaidimą, kad jį patikrintumėte.
Yra laikas, kai lokalių sąrašas nenustatomas iškart po žaidimo pradžios, Localization
nes nėra inicijuotas.
Po šiek tiek laiko turėtumėte matyti išskleidžiamajame meniu užregistruotų lokalių sąrašą. Jei bandysite perjungti elementus, turėtumėte matyti, kad keičiasi teksto turinys.