Отримання списку створених мовних і регіональних параметрів
Середовище перевірки
- Вікна
-
- вікна 11
- Редактор єдності
-
- 2021.3.12f1
- Система введення (Unity Technologies)
-
- 1.4.4
- Локалізація (Unity Technologies)
-
- 1.3.2
Передумови для цієї поради
Наступні настройки були зроблені заздалегідь як передумова для опису цієї поради.
Цілі наших порад
Відображає список відповідних мовних і регіональних параметрів у розкривному інтерфейсі користувача та перемикає текст відображення відповідно до локалізації, вибраної користувачем.
Необхідні знання та підготовка
Ця порада передбачає локалізацію наступного тексту: По-перше, зверніться до наступних порад, щоб підготуватися до відображення локалізованого тексту.
Змінення локалізації розкривного списку
Надає розкривний список для відображення списку мовних і регіональних положень. Вам потрібно лише мати можливість відображати та вибирати, тому переконайтеся, що параметри інтерфейсу користувача встановлені належним чином.
Отримання списку локалізацій
Список мовних і регіональних параметрів 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
тому що не ініціалізується.
Через деякий час ви зможете побачити список локалізацій, зареєстрованих у спадному меню. Якщо спробувати переключитися між елементами, можна побачити, що вміст тексту змінюється.