Dapatkan senarai penempatan yang telah anda cipta
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.