獲取已創建的區域設置清單
驗證環境
- 窗戶
-
- 視窗 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
因為未初始化。
片刻之後,您應該能夠在下拉清單中看到已註冊的區域設置清單。 如果您嘗試切換專案,您應該能夠看到文本的內容發生了變化。