Uzyskiwanie listy utworzonych przez siebie ustawień regionalnych
Środowisko weryfikacji
- Windows
-
- Okna 11
- Edytor Unity
-
- 2021.3.12f1
- System wejściowy (Unity Technologies)
-
- 1.4.4
- Lokalizacja (Unity Technologies)
-
- 1.3.2
Wymagania wstępne dotyczące tej porady
Poniższe ustawienia zostały wcześniej wprowadzone jako przesłanka do opisu tej wskazówki.
Cele naszych wskazówek
Wyświetla listę odpowiednich ustawień regionalnych w rozwijanym interfejsie użytkownika i przełącza wyświetlany tekst, aby dopasować go do ustawień regionalnych wybranych przez użytkownika.
Wstępna wiedza i przygotowanie
Ta wskazówka zakłada lokalizację następującego tekstu: Najpierw zapoznaj się z poniższymi wskazówkami, aby przygotować się do wyświetlania zlokalizowanego tekstu.
Umiejscowienie listy rozwijanej zmiany ustawień regionalnych
Zawiera listę rozwijaną, aby wyświetlić listę ustawień regionalnych. Musisz tylko mieć możliwość wyświetlania i wybierania, więc upewnij się, że parametry interfejsu użytkownika są odpowiednio ustawione.
Uzyskiwanie listy ustawień regionalnych
Możesz uzyskać listę ustawień regionalnych LocalizationSettings.AvailableLocales.Locales
utworzonych w programie .
Jeśli użyjesz tej opcji i ustawisz ją na liście rozwijanej na początku sceny, wszystko jest w porządku.
Jednak inicjowanie mogło nie zostać ukończone po Localization
uruchomieniu gry, więc może być konieczne oczekiwanie na jej ukończenie.
Najpierw utwórz skrypt. DropDownEvent
Pozostaw nazwę jako .
Skrypt wygląda tak:
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 wykonuje przetwarzanie na początku sceny, ale w tym momencie Localization
inicjalizacja mogła nie zostać zakończona.
await LocalizationSettings.InitializationOperation.Task
Poczekaj na zakończenie inicjalizacji.
await
, więc Start
proszę dodać go do async
metody.
LocalizationSettings.AvailableLocales.Locales
Następnie zawiera listę utworzonych ustawień regionalnych, więc foreach
przetwarzaj dowolną liczbę ustawień regionalnych.
Dropdown.OptionData
Ustaw Dropdown
nazwę ustawień regionalnych na i dodaj ją do .
Aby wybrać Dropdown.value
bieżące ustawienia regionalne z listy rozwijanej, wyszukaj docelowe ustawienia regionalne we właściwości i ustaw indeks.
To koniec tworzenia listy, ale chcę również uwzględnić proces, który zmienia ustawienia regionalne po wybraniu elementu listy rozwijanej.
onValueChanged
Dodaje przełączanie ustawień regionalnych do wydarzenia. Jest to to samo, co poprzednia wskazówka.
Dołącz utworzony skrypt do listy rozwijanej.
Uruchom i zweryfikuj
Spróbuj uruchomić grę, aby to sprawdzić.
Zdarza się, że lista ustawień regionalnych nie jest ustawiana natychmiast po rozpoczęciu gry, Localization
ponieważ nie jest inicjowana.
Po pewnym czasie powinieneś być w stanie zobaczyć listę zarejestrowanych ustawień regionalnych w menu rozwijanym. Jeśli spróbujesz przełączyć elementy, powinieneś być w stanie zobaczyć, że zawartość tekstu się zmienia.