Obtener una lista de las configuraciones regionales que ha creado
Entorno de verificación
- Windows
-
- Ventanas 11
- Unity Editor
-
- 2021.3.12F1
- Sistema de entrada (Unity Technologies)
-
- 1.4.4
- Localización (Unity Technologies)
-
- 1.3.2
Requisitos previos para esta sugerencia
Los siguientes ajustes se han realizado de antemano como premisa para la descripción de este consejo.
Objetivos de nuestros consejos
Muestra una lista de configuraciones regionales correspondientes en la interfaz de usuario desplegable y alterna el texto para mostrar para que coincida con la configuración regional seleccionada por el usuario.
Conocimientos previos y preparación
En esta sugerencia se supone la localización del texto siguiente: En primer lugar, consulte los siguientes consejos para prepararse para mostrar texto localizado.
Ubicación desplegable de cambio de configuración regional
Proporciona una lista desplegable para mostrar una lista de configuraciones regionales. Solo necesita poder mostrar y seleccionar, así que asegúrese de que los parámetros de la interfaz de usuario estén configurados correctamente.
Obtener una lista de configuraciones regionales
Puede obtener una lista de configuraciones regionales LocalizationSettings.AvailableLocales.Locales
creadas en .
Si usa esto y lo establece en el menú desplegable al comienzo de la escena, está bien.
Sin embargo, es posible que la inicialización no se haya completado al Localization
iniciar el juego, por lo que es posible que deba esperar a que se complete.
En primer lugar, cree un script. DropDownEvent
Deje el nombre como .
El script tiene este aspecto:
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étodo realiza el procesamiento al inicio de la escena, pero en este punto Localization
, es posible que la inicialización de no se haya completado.
await LocalizationSettings.InitializationOperation.Task
Espere a que se complete la inicialización.
await
, así que Start
agréguelo al async
método.
LocalizationSettings.AvailableLocales.Locales
A continuación, contiene una lista de configuraciones regionales que ha creado, así foreach
que procese tantas configuraciones regionales como desee.
Dropdown.OptionData
Establezca Dropdown
el nombre de la configuración regional en y agréguelo a .
Para seleccionar Dropdown.value
la configuración regional actual en la lista desplegable, busque la configuración regional de destino en la propiedad y establezca el índice.
Este es el final de la creación de la lista, pero también quiero incluir un proceso que cambie la configuración regional cuando se selecciona el elemento desplegable.
onValueChanged
Agrega el cambio de configuración regional al evento. Esto es lo mismo que el consejo anterior.
Adjunte el script que creó al menú desplegable.
Ejecutar y verificar
Intenta ejecutar el juego para comprobarlo.
Hay un momento en que la lista de configuración regional no se establece inmediatamente después de que comience el juego, Localization
porque no se inicializa.
Después de un poco de tiempo, debería poder ver la lista de configuraciones regionales registradas en el menú desplegable. Si intenta cambiar elementos, debería poder ver que el contenido del texto cambia.