Oluşturduğunuz yerel ayarların listesini alma

Sayfa güncel :
Sayfa oluşturma tarihi :

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.