Získání seznamu národních prostředí, která jste vytvořili

Stránky aktualizovány :
Datum vytvoření stránky :

Ověřovací prostředí

Windows
  • Systém Windows 11
Editor jednoty
  • 2021.3.12f1
Vstupní systém (Unity Technologies)
  • 1.4.4
Lokalizace (Unity Technologies)
  • 1.3.2

Předpoklady pro tento tip

Následující nastavení byla provedena předem jako předpoklad pro popis tohoto tipu.

Cíle našich tipů

Zobrazí seznam odpovídajících národních prostředí v rozevíracím uživatelském rozhraní a přepne zobrazovaný text tak, aby odpovídal národnímu prostředí vybranému uživatelem.

Předpoklady znalosti a příprava

Tento tip předpokládá lokalizaci následujícího textu: Nejprve si přečtěte následující tipy, abyste se připravili na zobrazení lokalizovaného textu.

Změna národního prostředí v rozevíracím seznamu

Poskytuje rozevírací seznam pro zobrazení seznamu národních prostředí. Musíte mít pouze možnost zobrazit a vybrat, takže se ujistěte, že jsou parametry uživatelského rozhraní nastaveny správně.

Získání seznamu národních prostředí

Můžete získat seznam národních prostředí LocalizationSettings.AvailableLocales.Locales vytvořených v programu . Pokud ji použijete a nastavíte na rozevírací seznam na začátku scény, jste v pořádku. Inicializace však nemusí být dokončena při Localization spuštění hry, takže možná budete muset počkat na její dokončení.

Nejprve vytvořte skript. DropDownEvent Název ponechte jako .

Skript vypadá 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 Metoda provádí zpracování na začátku scény, ale v tomto okamžiku Localization nemusí být dokončena inicializace. await LocalizationSettings.InitializationOperation.Task Počkejte na dokončení inicializace. await , takže Start jej prosím přidejte do async metody.

LocalizationSettings.AvailableLocales.Locales Dále obsahuje seznam národních prostředí, která jste vytvořili, takže foreach zpracujte tolik národních prostředí, kolik chcete. Dropdown.OptionData Nastavte Dropdown název národního prostředí na a přidejte jej do .

Chcete-li v rozevíracím seznamu vybrat Dropdown.value aktuální národní prostředí, vyhledejte cílové národní prostředí ve službě a nastavte index.

Toto je konec vytváření seznamu, ale chci také zahrnout proces, který změní národní prostředí, když je vybrána položka rozevíracího seznamu. onValueChanged Přidá k události přepínání národního prostředí. To je stejné jako předchozí tip.

Připojte skript, který jste vytvořili, k rozevíracímu seznamu.

Spuštění a ověření

Zkuste spustit hru a podívejte se na to. Stává se, že seznam národních prostředí není nastaven ihned po spuštění hry, Localization protože není inicializován.

Po nějaké době byste měli vidět seznam národních prostředí registrovaných v rozevíracím seznamu. Pokud se pokusíte přepínat položky, měli byste vidět, že se obsah textu mění.