Dapatkan senarai penempatan yang telah anda cipta

Laman dikemaskini :
Tarikh penciptaan halaman :

Persekitaran pengesahan

Windows
  • Windows 11
Penyunting Perpaduan
  • 2021.3.12f1
Sistem Input (Unity Technologies)
  • 1.4.4
Penyetempatan (Teknologi Perpaduan)
  • 1.3.2

Prasyarat untuk petua ini

Tetapan berikut telah dibuat terlebih dahulu sebagai premis untuk penerangan petua ini.

Matlamat petua kami

Memaparkan senarai penempatan yang sepadan dalam UI juntai bawah dan togol teks paparan agar sepadan dengan penempatan yang dipilih oleh pengguna.

Prasyarat pengetahuan dan penyediaan

Petua ini menganggap penyetempatan teks berikut: Pertama, sila rujuk petua berikut untuk bersedia untuk memaparkan teks setempat.

Penempatan juntai bawah perubahan penempatan

Menyediakan juntai bawah untuk memaparkan senarai tempat. Anda hanya perlu dapat memaparkan dan memilih, jadi pastikan parameter UI ditetapkan dengan sewajarnya.

Dapatkan senarai penempatan

Anda boleh mendapatkan senarai tempat LocalizationSettings.AvailableLocales.Locales yang dibuat dalam . Jika anda menggunakan ini dan menetapkannya ke menu lungsur pada permulaan adegan, anda OK. Walau bagaimanapun, permulaan mungkin tidak selesai apabila Localization anda memulakan permainan, jadi anda mungkin perlu menunggu untuk menyelesaikannya.

Pertama, buat skrip. DropDownEvent Tinggalkan nama sebagai .

Skrip kelihatan seperti ini:

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 Kaedah ini melakukan pemprosesan pada permulaan adegan, tetapi pada ketika Localization ini , permulaan mungkin tidak selesai. await LocalizationSettings.InitializationOperation.Task Tunggu permulaan selesai. await , jadi Start sila tambahkannya ke async kaedah.

LocalizationSettings.AvailableLocales.Locales Seterusnya, mengandungi senarai penempatan yang anda cipta, jadi foreach proses seberapa banyak penempatan yang anda mahu. Dropdown.OptionData Tetapkan Dropdown nama penempatan kepada dan tambahkannya kepada .

Untuk memilih Dropdown.value penempatan semasa dalam juntai bawah, cari penempatan sasaran dalam hartanah dan tetapkan indeks.

Ini adalah akhir membuat senarai, tetapi saya juga ingin memasukkan proses yang mengubah tempat apabila item lungsur dipilih. onValueChanged Menambah pertukaran tempat ke acara. Ini sama seperti petua sebelumnya.

Lampirkan skrip yang anda buat pada menu lungsur.

Jalankan dan sahkan

Cuba jalankan permainan untuk menyemaknya. Terdapat masa apabila senarai penempatan tidak ditetapkan sebaik sahaja permainan bermula, Localization kerana tidak dimulakan.

Selepas sedikit masa, anda sepatutnya dapat melihat senarai penduduk tempatan yang didaftarkan di dropdown. Jika anda cuba menukar item, anda sepatutnya dapat melihat bahawa kandungan teks berubah.