Een lijst met landinstellingen ophalen die u hebt gemaakt
Verificatieomgeving
- Ramen
-
- Voor Windows 11
- Unity Editor
-
- 2021.3.12f1
- Invoersysteem (Unity Technologies)
-
- 1.4.4
- Lokalisatie (Unity Technologies)
-
- 1.3.2
Vereisten voor deze tip
De volgende instellingen zijn vooraf gemaakt als uitgangspunt voor de beschrijving van deze tip.
Doelen van onze tips
Hiermee wordt een lijst met overeenkomstige landinstellingen weergegeven in de vervolgkeuzelijst en wordt de weergavetekst aangepast aan de landinstelling die door de gebruiker is geselecteerd.
Vereiste kennis en voorbereiding
In deze tip wordt uitgegaan van lokalisatie van de volgende tekst: Raadpleeg eerst de volgende tips om u voor te bereiden op het weergeven van gelokaliseerde tekst.
Vervolgkeuzelijst landinstellingen wijzigen
Biedt een vervolgkeuzelijst om een lijst met landinstellingen weer te geven. U hoeft alleen maar te kunnen weergeven en selecteren, dus zorg ervoor dat de UI-parameters op de juiste manier zijn ingesteld.
Een lijst met landinstellingen ophalen
U kunt een lijst met landinstellingen LocalizationSettings.AvailableLocales.Locales
maken in .
Als u dit gebruikt en instelt op de vervolgkeuzelijst aan het begin van de scène, bent u in orde.
Het is echter mogelijk dat de initialisatie niet is voltooid wanneer Localization
u de game start, dus mogelijk moet u wachten tot deze is voltooid.
Maak eerst een script. DropDownEvent
Laat de naam staan als .
Het script ziet er als volgt uit:
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
De methode voert de verwerking uit aan het begin van de scène, maar op dit moment Localization
is de initialisatie van mogelijk niet voltooid.
await LocalizationSettings.InitializationOperation.Task
Wacht tot de initialisatie is voltooid.
await
, dus Start
voeg het toe aan de async
methode.
LocalizationSettings.AvailableLocales.Locales
Bevat vervolgens een lijst met landinstellingen die u hebt gemaakt, dus foreach
verwerk zoveel landinstellingen als u wilt.
Dropdown.OptionData
Stel de landinstellingsnaam in Dropdown
op en voeg deze toe aan .
Als u de huidige landinstelling in de vervolgkeuzelijst wilt selecteren Dropdown.value
, zoekt u naar de doellandinstelling in de eigenschap en stelt u de index in.
Dit is het einde van het maken van de lijst, maar ik wil ook een proces opnemen dat de landinstelling wijzigt wanneer het vervolgkeuzemenu wordt geselecteerd.
onValueChanged
Hiermee voegt u landinstellingsschakeling toe aan de gebeurtenis. Dit is hetzelfde als de vorige tip.
Voeg het script dat u hebt gemaakt toe aan de vervolgkeuzelijst.
Uitvoeren en verifiëren
Probeer het spel uit te voeren om het te bekijken.
Er is een tijd dat de landinstellingenlijst niet onmiddellijk na het starten van het spel wordt ingesteld, Localization
omdat deze niet is geïnitialiseerd.
Na een tijdje zou u de lijst met landinstellingen moeten kunnen zien die in de vervolgkeuzelijst zijn geregistreerd. Als u probeert van item te wisselen, moet u kunnen zien dat de inhoud van de tekst verandert.