Získanie zoznamu vytvorených jazykov

Stránka aktualizovaná :
Dátum vytvorenia strany :

Prostredie overovania

Windows
  • Windows 11
Editor jednoty
  • 2021.3.12F1
Vstupný systém (Unity Technologies)
  • 1.4.4
Lokalizácia (Unity Technologies)
  • 1.3.2

Predpoklady pre tento tip

Nasledujúce nastavenia boli vykonané vopred ako predpoklad pre popis tohto tipu.

Ciele našich tipov

Zobrazí zoznam zodpovedajúcich miestnych nastavení v rozbaľovacom používateľskom rozhraní a prepne zobrazovaný text tak, aby zodpovedal miestnym nastaveniam vybratým používateľom.

Nevyhnutné vedomosti a príprava

Tento tip predpokladá lokalizáciu nasledujúceho textu: Najprv si prečítajte nasledujúce tipy na prípravu na zobrazenie lokalizovaného textu.

Rozbaľovacie umiestnenie na zmenu miestnych nastavení

Poskytuje rozbaľovaciu ponuku na zobrazenie zoznamu miestnych nastavení. Stačí vedieť zobraziť a vybrať, preto sa uistite, že parametre používateľského rozhrania sú správne nastavené.

Získanie zoznamu miestnych nastavení

Zoznam miestnych nastavení LocalizationSettings.AvailableLocales.Locales vytvorených môžete získať v aplikácii . Ak ho použijete a nastavíte na rozbaľovaciu ponuku na začiatku scény, ste v poriadku. Inicializácia sa však nemusí dokončiť pri Localization spustení hry, takže možno budete musieť počkať na jej dokončenie.

Najprv vytvorte skript. DropDownEvent Názov ponechajte ako .

Skript vyzerá takto:

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 Metóda vykonáva spracovanie na začiatku scény, ale v tomto bode Localization nemusí byť inicializácia dokončená. await LocalizationSettings.InitializationOperation.Task Počkajte na dokončenie inicializácie. await , preto Start ho prosím pridajte do metódy async .

LocalizationSettings.AvailableLocales.Locales Ďalej obsahuje zoznam miestnych nastavení, ktoré ste vytvorili, takže foreach spracujte toľko miestnych nastavení, koľko chcete. Dropdown.OptionData Nastavte Dropdown názov miestneho nastavenia na a pridajte ho do priečinka .

Ak chcete vybrať Dropdown.value aktuálne miestne nastavenie v rozbaľovacom zozname, vyhľadajte cieľové miestne nastavenie vo vlastnosti a nastavte index.

Toto je koniec vytvárania zoznamu, ale chcem tiež zahrnúť proces, ktorý zmení miestne nastavenie, keď je vybratá rozbaľovacia položka. onValueChanged Pridá prepínanie miestnych nastavení do udalosti. Je to rovnaké ako predchádzajúci tip.

Priložte vytvorený skript do rozbaľovacieho zoznamu.

Spustenie a overenie

Skúste spustiť hru a skontrolovať ju. Existuje čas, keď zoznam miestnych nastavení nie je nastavený ihneď po spustení hry, Localization pretože nie je inicializovaný.

Po krátkom čase by ste mali vidieť zoznam miestnych nastavení zaregistrovaných v rozbaľovacom zozname. Ak sa pokúsite prepnúť položky, mali by ste vidieť, že obsah textu sa zmení.