Mendapatkan daftar lokal yang telah Anda buat
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.