Ottenere un elenco delle impostazioni locali create

Pagina aggiornata :
Data di creazione della pagina :

Ambiente di verifica

Finestre
  • Windows 11
Unity Editor
  • 2021.3.12f1
Sistema di input (Unity Technologies)
  • 1.4.4
Localizzazione (Unity Technologies)
  • 1.3.2

Prerequisiti per questo suggerimento

Le seguenti impostazioni sono state effettuate in anticipo come premessa per la descrizione di questo suggerimento.

Obiettivi dei nostri consigli

Visualizza un elenco delle impostazioni locali corrispondenti nell'interfaccia utente a discesa e attiva o disattiva il testo visualizzato in modo che corrisponda alle impostazioni locali selezionate dall'utente.

Conoscenze e preparazione preliminari

Questo suggerimento presuppone la localizzazione del testo seguente: Innanzitutto, fai riferimento ai seguenti suggerimenti per prepararti a visualizzare il testo localizzato.

Posizionamento a discesa per la modifica delle impostazioni locali

Fornisce un elenco a discesa per visualizzare un elenco di impostazioni locali. Devi solo essere in grado di visualizzare e selezionare, quindi assicurati che i parametri dell'interfaccia utente siano impostati correttamente.

Ottenere un elenco di impostazioni locali

È possibile ottenere un elenco di impostazioni locali LocalizationSettings.AvailableLocales.Locales create in . Se lo usi e lo imposti sul menu a discesa all'inizio della scena, sei OK. Tuttavia, l'inizializzazione potrebbe non essere completata all'avvio Localization del gioco, pertanto potrebbe essere necessario attendere il completamento.

Innanzitutto, crea uno script. DropDownEvent Lasciare il nome come .

Lo script è simile al seguente:

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 Il metodo esegue l'elaborazione all'inizio della scena, ma a questo punto Localization l'inizializzazione di potrebbe non essere stata completata. await LocalizationSettings.InitializationOperation.Task Attendere il completamento dell'inizializzazione. await , quindi Start aggiungilo al async metodo.

LocalizationSettings.AvailableLocales.Locales Successivamente, contiene un elenco di impostazioni locali create, quindi foreach elabora tutte le impostazioni locali che desideri. Dropdown.OptionData Impostare Dropdown il nome delle impostazioni locali su e aggiungerlo a .

Per selezionare Dropdown.value le impostazioni locali correnti nell'elenco a discesa, cercare le impostazioni locali di destinazione nella proprietà e impostare l'indice.

Questa è la fine della creazione dell'elenco, ma voglio anche includere un processo che modifica le impostazioni locali quando viene selezionato l'elemento a discesa. onValueChanged Aggiunge il cambio di impostazioni locali all'evento. Questo è lo stesso del suggerimento precedente.

Allega lo script creato al menu a discesa.

Esegui e verifica

Prova a eseguire il gioco per verificarlo. C'è un momento in cui l'elenco delle impostazioni locali non viene impostato immediatamente dopo l'avvio del gioco, Localization perché non è inizializzato.

Dopo un po 'di tempo, dovresti essere in grado di vedere l'elenco delle impostazioni locali registrate nel menu a discesa. Se provi a cambiare elemento, dovresti essere in grado di vedere che il contenuto del testo cambia.