Mendapatkan daftar lokal yang telah Anda buat

Halaman Diperbarui :
Tanggal pembuatan halaman :

Lingkungan verifikasi

Windows
  • jendela 11
Editor Kesatuan
  • 2021.3.12f1
Sistem Input (Teknologi Unity)
  • 1.4.4
Lokalisasi (Unity Technologies)
  • 1.3.2

Prasyarat untuk tip ini

Pengaturan berikut telah dibuat sebelumnya sebagai premis untuk deskripsi tip ini.

Tujuan dari tips kami

Menampilkan daftar lokal terkait di UI drop-down dan mengubah teks tampilan agar sesuai dengan lokal yang dipilih oleh pengguna.

Pengetahuan dan persiapan prasyarat

Tips ini mengasumsikan lokalisasi teks berikut: Pertama, silakan lihat tips berikut untuk bersiap menampilkan teks yang dilokalkan.

Penempatan drop-down perubahan lokal

Menyediakan drop-down untuk menampilkan daftar lokal. Anda hanya perlu dapat menampilkan dan memilih, jadi pastikan parameter UI diatur dengan tepat.

Mendapatkan daftar lokal

Anda bisa mendapatkan daftar lokal LocalizationSettings.AvailableLocales.Locales yang dibuat di . Jika Anda menggunakan ini dan mengaturnya ke drop-down di awal adegan, Anda baik-baik saja. Namun, inisialisasi mungkin belum selesai saat Localization Anda memulai permainan, jadi Anda mungkin harus menunggu hingga selesai.

Pertama, buat skrip. DropDownEvent Biarkan nama sebagai .

Skripnya terlihat 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 Metode ini melakukan pemrosesan pada awal adegan, tetapi pada titik Localization ini, inisialisasi mungkin belum selesai. await LocalizationSettings.InitializationOperation.Task Tunggu hingga inisialisasi selesai. await , jadi Start silakan tambahkan ke async metode.

LocalizationSettings.AvailableLocales.Locales Selanjutnya, berisi daftar lokal yang Anda buat, jadi foreach proses lokal sebanyak yang Anda inginkan. Dropdown.OptionData Atur Dropdown nama lokal ke dan tambahkan ke .

Untuk memilih Dropdown.value lokal saat ini di drop-down, cari lokal target di properti dan tetapkan indeks.

Ini adalah akhir dari pembuatan daftar, tetapi saya juga ingin menyertakan proses yang mengubah lokal ketika item drop-down dipilih. onValueChanged Menambahkan peralihan lokal ke acara. Ini sama dengan tip sebelumnya.

Lampirkan skrip yang Anda buat ke menu dropdown.

Jalankan dan verifikasi

Coba jalankan game untuk memeriksanya. Ada kalanya daftar lokal tidak diatur segera setelah permainan dimulai, Localization karena tidak diinisialisasi.

Setelah beberapa saat, Anda akan dapat melihat daftar lokal yang terdaftar di dropdown. Jika Anda mencoba beralih item, Anda harus dapat melihat bahwa konten teks berubah.