Obteniu una llista de les configuracions locals que heu creat
Entorn de verificació
- Windows
-
- Finestres 11
- Editor d'unitat
-
- 2021.3.12f1
- Sistema d'entrada (Unity Technologies)
-
- 1.4.4
- Localització (Unity Technologies)
-
- 1.3.2
Requisits previs per a aquest consell
La configuració següent s'ha fet amb antelació com a premissa per a la descripció d'aquest consell.
Objectius dels nostres consells
Mostra una llista de les configuracions regionals corresponents a la interfície d'usuari desplegable i commuta el text de visualització perquè coincideixi amb la configuració regional seleccionada per l'usuari.
Coneixements previs i preparació
Aquest consell assumeix la localització del text següent: En primer lloc, consulteu els consells següents per preparar-vos per mostrar text localitzat.
Col·locació desplegable de canvi regional
Proporciona un menú desplegable per mostrar una llista de configuracions locals. Només heu de poder mostrar i seleccionar, així que assegureu-vos que els paràmetres de la interfície d'usuari estiguin configurats adequadament.
Obteniu una llista de configuracions locals
Podeu obtenir una llista de locales creats LocalizationSettings.AvailableLocales.Locales
a .
Si l'utilitzeu i el configureu al menú desplegable del començament de l'escena, esteu bé.
Tanmateix, és possible que la inicialització no s'hagi completat quan Localization
comenceu el joc, de manera que és possible que hàgiu d'esperar que es completi.
Primer, creeu un script. DropDownEvent
Deixeu el nom com .
El guió té aquest aspecte:
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
El mètode realitza el processament al començament de l'escena, però en aquest punt Localization
, la inicialització de pot no haver-se completat.
await LocalizationSettings.InitializationOperation.Task
Espereu que finalitzi la inicialització.
await
, així que Start
afegiu-lo al mètode async
.
LocalizationSettings.AvailableLocales.Locales
A continuació, conté una llista de locales que heu creat, de manera foreach
que processeu tants locales com vulgueu.
Dropdown.OptionData
Establiu Dropdown
el nom de configuració regional a i afegiu-lo a .
Per seleccionar Dropdown.value
la configuració regional actual al menú desplegable, cerqueu la configuració regional de destinació a la propietat i definiu l'índex.
Aquest és el final de la creació de la llista, però també vull incloure un procés que canviï la configuració regional quan se selecciona l'element desplegable.
onValueChanged
Afegeix el canvi de configuració regional a l'esdeveniment. Això és el mateix que la punta anterior.
Adjunteu l'script que heu creat al menú desplegable.
Executar i verificar
Proveu d'executar el joc per comprovar-ho.
Hi ha un moment en què la llista de configuració regional no s'estableix immediatament després que comenci el joc, Localization
perquè no s'inicialitza.
Al cap d'una estona, hauríeu de poder veure la llista de configuracions locals registrades al menú desplegable. Si proveu de canviar d'element, hauríeu de poder veure que el contingut del text canvia.