Obteniu una llista de les configuracions locals que heu creat

Pàgina actualitzada :
Data de creació de la pàgina :

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.