Izveidoto lokalizāciju saraksta iegūšana

Lapa atjaunota :
Lapas izveides datums :

Verifikācijas vide

Windows
  • Operētājsistēmā Windows 11
Vienotības redaktors
  • 2021.3.12f1
Ievades sistēma (Unity Technologies)
  • 1.4.4
Lokalizācija (Unity Technologies)
  • 1.3.2

Priekšnoteikumi šim padomam

Tālāk norādītie iestatījumi ir veikti iepriekš kā priekšnoteikums šī padoma aprakstam.

Mūsu padomu mērķi

Nolaižamajā lietotāja saskarnē parāda atbilstošo lokalizāciju sarakstu un pārslēdz parādāmo tekstu atbilstoši lietotāja atlasītajai lokalizācijai.

Priekšzināšanas un sagatavošana

Šis padoms pieņem, ka tiek lokalizēts šāds teksts: Vispirms, lūdzu, skatiet tālāk sniegtos padomus, lai sagatavotos lokalizēta teksta parādīšanai.

Lokalizācijas maiņas nolaižamais novietojums

Nodrošina nolaižamo sarakstu, lai parādītu lokalizāciju sarakstu. Jums tikai jāspēj parādīt un atlasīt, tāpēc pārliecinieties, vai lietotāja saskarnes parametri ir iestatīti pareizi.

Iegūt lokalizāciju sarakstu

Varat iegūt lokalizāciju LocalizationSettings.AvailableLocales.Locales sarakstu, kas izveidots vietnē . Ja to izmantojat un ainas sākumā iestatāt nolaižamo izvēlni, viss ir kārtībā. Tomēr, sākot Localization spēli, inicializēšana, iespējams, nav pabeigta, tāpēc jums, iespējams, būs jāgaida, līdz tā tiks pabeigta.

Vispirms izveidojiet skriptu. DropDownEvent Atstājiet vārdu kā .

Skripts izskatās šādi:

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 Metode veic apstrādi ainas sākumā, bet šajā brīdī Localization , inicializācija, iespējams, nav pabeigta. await LocalizationSettings.InitializationOperation.Task Pagaidiet, līdz inicializācija ir pabeigta. await , tāpēc Start , lūdzu, async pievienojiet to metodei.

LocalizationSettings.AvailableLocales.Locales Pēc tam ir jūsu izveidoto lokalizāciju saraksts, tāpēc foreach apstrādājiet tik daudz lokalizāciju, cik vēlaties. Dropdown.OptionData Iestatiet Dropdown lokalizācijas nosaukumu un pievienojiet to .

Lai nolaižamajā izvēlnē atlasītu Dropdown.value pašreizējo lokalizāciju, īpašumā meklējiet mērķa lokalizāciju un iestatiet indeksu.

Šīs ir saraksta izveides beigas, bet es vēlos iekļaut arī procesu, kas maina lokalizāciju, kad tiek atlasīts nolaižamais vienums. onValueChanged Pievieno lokalizācijas pārslēgšanos uz notikumu. Tas ir tāds pats kā iepriekšējais padoms.

Pievienojiet izveidoto skriptu nolaižamajai izvēlnei.

Palaišana un pārbaude

Mēģiniet palaist spēli, lai to pārbaudītu. Ir laiks, kad lokalizācijas saraksts netiek iestatīts uzreiz pēc spēles sākuma, Localization jo tas nav inicializēts.

Pēc neilga laika jums vajadzētu būt iespējai redzēt nolaižamajā izvēlnē reģistrēto lokalizāciju sarakstu. Ja mēģināt pārslēgt vienumus, jums vajadzētu būt iespējai redzēt, ka teksta saturs mainās.