Hae luettelo luomistasi kieliasetuksista

Sivu päivitetty :
Sivun luontipäivämäärä :

Varmennusympäristö

Windows
  • Windows 11
Unity-editori
  • 2021.3.12F1
Syöttöjärjestelmä (Unity Technologies)
  • 1.4.4
Lokalisointi (Unity Technologies)
  • 1.3.2

Tämän vinkin edellytykset

Seuraavat asetukset on tehty etukäteen tämän vinkin kuvauksen lähtökohtana.

Vinkkiemme tavoitteet

Näyttää luettelon vastaavista kieliasetuksista avattavassa käyttöliittymässä ja vaihtaa näyttötekstin vastaamaan käyttäjän valitsemaa aluekohtaista asetusta.

Edeltävät tiedot ja valmistelu

Tämä vinkki edellyttää seuraavan tekstin lokalisointia: Tutustu ensin seuraaviin vinkkeihin, joiden avulla voit valmistautua näyttämään lokalisoidun tekstin.

Avattavan aluekohtaisten asetusten muutoksen sijoittelu

Näyttää avattavan valikon, jossa näkyy aluekohtainen luettelo. Sinun tarvitsee vain pystyä näyttämään ja valitsemaan, joten varmista, että käyttöliittymän parametrit on asetettu oikein.

Hae kielialueiden luettelo

Saat luettelon aluekohtaisista asetuksista LocalizationSettings.AvailableLocales.Locales , jotka on luotu . Jos käytät tätä ja asetat sen kohtauksen alussa olevaan avattavaan valikkoon, olet kunnossa. Alustus ei kuitenkaan välttämättä ole valmis, kun Localization käynnistät pelin, joten sinun on ehkä odotettava sen valmistumista.

Luo ensin komentosarja. DropDownEvent Jätä nimeksi .

Skripti näyttää tältä:

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 Menetelmä suorittaa käsittelyn kohtauksen alussa, mutta tässä vaiheessa Localization , alustusta ei ehkä ole suoritettu loppuun. await LocalizationSettings.InitializationOperation.Task Odota, että alustus on valmis. await , joten Start lisää se menetelmään async .

LocalizationSettings.AvailableLocales.Locales Seuraavaksi sisältää luettelon luomistasi kieliasetuksista, joten foreach käsittele niin monta kieliasetusta kuin haluat. Dropdown.OptionData Määritä Dropdown aluekohtaisten asetusten nimeksi ja lisää se .

Jos haluat valita Dropdown.value nykyisen aluekohtaisen asetuksen avattavasta valikosta, etsi kohdealuekohtainen asetus omaisuudesta ja määritä indeksi.

Tämä on luettelon luomisen loppu, mutta haluan myös sisällyttää prosessin, joka muuttaa aluekohtaista asetusta, kun avattava kohde valitaan. onValueChanged Lisää tapahtumaan aluekohtaisen alueen vaihdon. Tämä on sama kuin edellinen vinkki.

Liitä luomasi komentosarja avattavaan valikkoon.

Suorita ja vahvista

Yritä tarkistaa peli suorittamalla se. On aika, jolloin aluekohtaista luetteloa ei aseteta heti pelin alkamisen jälkeen, Localization koska sitä ei alusteta.

Hetken kuluttua sinun pitäisi nähdä luettelo rekisteröidyistä aluekohtaisista asetuksista avattavassa valikossa. Jos yrität vaihtaa kohteita, sinun pitäisi nähdä, että tekstin sisältö muuttuu.