Een lijst met landinstellingen ophalen die u hebt gemaakt

Pagina bijgewerkt :
Aanmaakdatum van pagina :

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.