Oluşturduğunuz yerel ayarların listesini alma
Doğrulama ortamı
- Windows
-
- Pencereler 11
- Birlik Editörü
-
- 2021.3.12f1
- Giriş Sistemi (Unity Technologies)
-
- 1.4.4
- Yerelleştirme (Unity Technologies)
-
- 1.3.2
Bu ipucu için önkoşullar
Aşağıdaki ayarlar, bu ipucunun açıklaması için bir öncül olarak önceden yapılmıştır.
İpuçlarımızın hedefleri
Açılır kullanıcı arabiriminde karşılık gelen yerel ayarların listesini görüntüler ve görüntüleme metnini kullanıcı tarafından seçilen yerel ayarla eşleşecek şekilde değiştirir.
Ön koşul bilgisi ve hazırlık
Bu ipucu, aşağıdaki metnin yerelleştirildiğini varsayar: İlk olarak, yerelleştirilmiş metni görüntülemeye hazırlanmak için lütfen aşağıdaki ipuçlarına bakın.
Yerel ayar değişikliği açılır yerleşimi
Yerel ayarların listesini görüntülemek için bir açılır menü sağlar. Yalnızca görüntüleyebilmeniz ve seçebilmeniz gerekir, bu nedenle UI parametrelerinin uygun şekilde ayarlandığından emin olun.
Yerel ayarların listesini alma
içinde oluşturulan yerel ayarların LocalizationSettings.AvailableLocales.Locales
bir listesini alabilirsiniz.
Bunu kullanır ve sahnenin başındaki açılır menüye ayarlarsanız, sorun yok.
Ancak, oyuna başladığınızda başlatma işlemi tamamlanmamış Localization
olabilir, bu nedenle oyunun tamamlanmasını beklemeniz gerekebilir.
İlk olarak, bir komut dosyası oluşturun. DropDownEvent
Adı olarak bırakın.
Komut dosyası şöyle görünür:
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
Yöntem, sahnenin başlangıcında işleme gerçekleştirir, ancak bu noktada Localization
, başlatılması tamamlanmamış olabilir.
await LocalizationSettings.InitializationOperation.Task
Başlatmanın tamamlanmasını bekleyin.
await
, bu yüzden Start
lütfen yönteme async
ekleyin.
LocalizationSettings.AvailableLocales.Locales
Ardından, oluşturduğunuz yerel ayarların bir listesini içerir, bu nedenle foreach
istediğiniz kadar yerel ayarı işleyin.
Dropdown.OptionData
Yerel ayar adını olarak ayarlayın Dropdown
ve .
Açılır menüde geçerli yerel ayarı seçmek Dropdown.value
için, özellikte hedef yerel ayarı arayın ve dizini ayarlayın.
Bu, listeyi oluşturmanın sonudur, ancak açılır öğe seçildiğinde yerel ayarı değiştiren bir işlem de eklemek istiyorum.
onValueChanged
Olaya yerel ayar geçişi ekler. Bu, önceki ipucuyla aynıdır.
Oluşturduğunuz komut dosyasını açılır menüye ekleyin.
Çalıştırma ve doğrulama
Kontrol etmek için oyunu çalıştırmayı deneyin.
Yerel ayar listesinin oyun başladıktan hemen sonra ayarlanmadığı bir zaman vardır, Localization
çünkü başlatılmamıştır.
Kısa bir süre sonra, açılır menüde kayıtlı yerel ayarların listesini görebilmeniz gerekir. Öğeleri değiştirmeyi denerseniz, metnin içeriğinin değiştiğini görebilmeniz gerekir.