Obtener una lista de las configuraciones regionales que ha creado

Actualización de la página :
Fecha de creación de la página :

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.