Obțineți o listă de setări regionale pe care le-ați creat

Pagina actualizată :
Data creării paginii :

Mediul de verificare

Windows
  • Ferestre 11
Unity Editor
  • 2021.3.12F1
Sistem de intrare (Unity Technologies)
  • 1.4.4
Localizare (Unity Technologies)
  • 1.3.2

Cerințe preliminare pentru acest sfat

Următoarele setări au fost făcute în avans ca premisă pentru descrierea acestui sfat.

Obiectivele sfaturilor noastre

Afișează o listă de setări regionale corespunzătoare în interfața verticală și comută textul afișat pentru a corespunde setărilor regionale selectate de utilizator.

Cunoștințe și pregătire prealabile

Acest sfat presupune localizarea următorului text: În primul rând, consultați următoarele sfaturi pentru a vă pregăti să afișați text localizat.

Poziționarea drop-down pentru modificarea setărilor regionale

Oferă o listă verticală pentru a afișa o listă de setări regionale. Trebuie doar să puteți afișa și selecta, deci asigurați-vă că parametrii UI sunt setați corespunzător.

Obțineți o listă de setări regionale

Puteți obține o listă de setări regionale LocalizationSettings.AvailableLocales.Locales create în . Dacă utilizați acest lucru și îl setați la meniul derulant de la începutul scenei, sunteți OK. Cu toate acestea, este posibil ca inițializarea să nu se fi finalizat atunci când Localization începeți jocul, deci poate fi necesar să așteptați să se finalizeze.

Mai întâi, creați un script. DropDownEvent Lăsați numele ca .

Scenariul arată astfel:

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 Metoda efectuează procesarea la începutul scenei, dar în acest moment Localization , este posibil ca inițializarea să nu fi fost finalizată. await LocalizationSettings.InitializationOperation.Task Așteptați finalizarea inițializării. await , așa că Start vă rugăm să o adăugați la async metodă.

LocalizationSettings.AvailableLocales.Locales Apoi, conține o listă de setări regionale pe care le-ați creat, deci foreach procesați câte setări regionale doriți. Dropdown.OptionData Setați Dropdown numele setărilor regionale la și adăugați-l la .

Pentru a selecta Dropdown.value setările regionale curente din lista verticală, căutați setările regionale țintă în proprietate și setați indexul.

Acesta este sfârșitul creării listei, dar doresc, de asemenea, să includ un proces care modifică setările regionale atunci când este selectat elementul vertical. onValueChanged Adaugă comutarea setărilor regionale la eveniment. Acesta este același lucru cu sfatul anterior.

Atașați scriptul pe care l-ați creat la lista verticală.

Rulați și verificați

Încercați să rulați jocul pentru a-l verifica. Există un moment în care lista de setări regionale nu este setată imediat după începerea jocului, Localization deoarece nu este inițializată.

După puțin timp, ar trebui să puteți vedea lista de localizări înregistrate în meniul derulant. Dacă încercați să comutați între elemente, ar trebui să puteți vedea că conținutul textului se modifică.