獲取已創建的區域設置清單

更新頁 :
頁面創建日期 :

驗證環境

窗戶
  • 視窗 11
統一編輯器
  • 2021.3.12f1
輸入系統(統一技術)
  • 1.4.4
當地語系化(統一技術)
  • 1.3.2

此提示的先決條件

作為此提示描述的前提,已預先進行了以下設置。

我們提示的目標

在下拉 UI 中顯示相應區域設置的清單,並切換顯示文字以匹配使用者選擇的區域設置。

先決條件知識和準備

此提示假定以下文字的當地語系化: 首先,請參考以下提示來準備顯示本地化文本。

區域設置更改下拉位置

提供用於顯示區域設置清單的下拉清單。 您只需要能夠顯示和選擇,因此請確保正確設置了UI參數。

獲取區域設置清單

您可以取得在中建立的區域 LocalizationSettings.AvailableLocales.Locales 設定清單。 如果您使用它並將其設置為場景開始時的下拉清單,則可以。 但是,啟動遊戲時 Localization 初始化可能尚未完成,因此您可能需要等待它完成。

首先,創建一個腳本。 DropDownEvent 將名稱保留為 。

文稿如下所示:

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 該方法在場景開始時執行處理,但此時 Localization ,初始化可能尚未完成。 await LocalizationSettings.InitializationOperation.Task 等待初始化完成。 await ,因此 Start 請將其添加到方法中 async

LocalizationSettings.AvailableLocales.Locales接下來,包含您創建的區域設置清單,因此請foreach根據需要處理任意數量的區域設置。 Dropdown.OptionData將區域設定名稱設定為 Dropdown 並將新增到 。

若要在下拉清單中選擇 Dropdown.value 目前區域設置,請在屬性中搜索目標區域設置並設置索引。

創建清單到此結束,但我還想包含一個在選擇下拉項時更改區域設置的過程。 onValueChanged 將區域設置切換添加到事件。 這與上一個提示相同

將創建的文稿附加到下拉清單中。

運行並驗證

嘗試運行遊戲進行檢查。 有時,區域設置清單不會在遊戲開始后立即設置, Localization 因為未初始化。

片刻之後,您應該能夠在下拉清單中看到已註冊的區域設置清單。 如果您嘗試切換專案,您應該能夠看到文本的內容發生了變化。