دریافت لیستی از محلی که ایجاد کرده اید

صفحه به روز شده :
تاریخ ایجاد صفحه :

محیط تایید

ویندوز
  • ویندوز 11
ویرایشگر یونیتی
  • دانلود: 2021.3.12f1
سیستم ورودی (Unity Technologies)
  • 1.4.4
تکنولوژی وحدت (Unity Technologies)
  • 1.3.2

پیشنیازهای این نکته

تنظیمات زیر از قبل به عنوان یک فرض برای توصیف این نکته ساخته شده است.

اهداف راهنمایی های ما

لیستی از مناطق مربوطه را در رابط کاربری کشویی نمایش می دهد و متن نمایش را برای مطابقت با محلی که توسط کاربر انتخاب شده است، تغییر می دهد.

دانش پیش نیاز و اماده سازی

این نکته فرض می کند که متن زیر محلی سازی شده است: اول، لطفا به نکات زیر مراجعه کنید تا برای نمایش متن محلی اماده شود.

تغییر محلی قرار دادن کشویی

یک کشویی برای نمایش یک لیست از مناطق فراهم می کند. شما فقط باید قادر به نمایش و انتخاب باشید، بنابراین اطمینان حاصل کنید که پارامترهای UI به طور مناسب تنظیم شده اند.

دریافت فهرستی از مناطق

شما می توانید لیستی از مناطق LocalizationSettings.AvailableLocales.Locales ایجاد شده در . اگر از این استفاده کنید و ان را در ابتدای صحنه تنظیم کنید، مشکلی ندارید. با این حال، مقداردهی اولیه ممکن است هنگام Localization شروع بازی تکمیل نشده باشد، بنابراین ممکن است لازم باشد صبر کنید تا کامل شود.

اول، یک اسکریپت ایجاد کنید. DropDownEvent نام را به عنوان .

فیلمنامه به این شکل است:

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 این روش پردازش را در ابتدای صحنه انجام می دهد، اما در این مرحله Localization ، مقداردهی اولیه ممکن است تکمیل نشده باشد. await LocalizationSettings.InitializationOperation.Task صبر کنید تا مقداردهی اولیه تکمیل شود. await لطفا Start ان را به async روش اضافه کنید.

LocalizationSettings.AvailableLocales.Locales بعد، شامل لیستی از محلی است که ایجاد کرده اید، بنابراین foreach هر تعداد محلی را که می خواهید پردازش کنید. Dropdown.OptionData نام محلی را تنظیم Dropdown کنید و ان را به .

برای انتخاب Dropdown.value محل فعلی در کشویی، محل هدف را در ملک جستجو کنید و شاخص را تنظیم کنید.

این پایان ایجاد لیست است، اما من همچنین می خواهم یک فرایند را شامل شود که هنگام انتخاب ایتم کشویی، محلی را تغییر می دهد. onValueChanged تغییر محلی را به رویداد اضافه می کند. این همان نکته قبلی است.

نوشته ای را که ساخته اید را به ان اضافه کنید.

اجرا و تایید

سعی کنید بازی را اجرا کنید تا ان را بررسی کنید. زمانی وجود دارد که لیست محلی بلافاصله پس از شروع بازی تنظیم نمی شود، Localization زیرا مقدار اولیه نیست.

پس از کمی زمان، شما باید قادر به دیدن لیست مناطق ثبت شده در کشویی. اگر سعی کنید ایتم ها را تغییر دهید، باید بتوانید ببینید که محتوای متن تغییر می کند.