Ottenere un elenco delle impostazioni locali create
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.