الحصول على قائمة بالإعدادات المحلية التي أنشأتها

تحديث الصفحة :
تاريخ إنشاء الصفحة :

بيئة التحقق

نوافذ
  • ويندوز ١١
محرر الوحدة
  • 2021.3.12f1
نظام الإدخال (يونيتي تكنولوجيز)
  • 1.4.4
التعريب (يونيتي تكنولوجيز)
  • 1.3.2

المتطلبات الأساسية لهذه النصيحة

تم إجراء الإعدادات التالية مسبقا كمقدمة لوصف هذه النصيحة.

أهداف نصائحنا

يعرض قائمة باللغات المناظرة في واجهة المستخدم المنسدلة ويبدل نص العرض ليطابق الإعدادات المحلية المحددة من قبل المستخدم.

المعرفة المسبقة والإعداد

تفترض هذه النصيحة ترجمة النص التالي: أولا، يرجى الرجوع إلى النصائح التالية للتحضير لعرض النص المترجم.

موضع القائمة المنسدلة لتغيير الإعدادات المحلية

يوفر قائمة منسدلة لعرض قائمة باللغات. ما عليك سوى أن تكون قادرا على العرض والتحديد ، لذا تأكد من تعيين معلمات واجهة المستخدم بشكل مناسب.

الحصول على قائمة باللغات

يمكنك الحصول على قائمة باللغات التي 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 لأنه لم تتم تهيئتها.

بعد مرور بعض الوقت ، يجب أن تكون قادرا على رؤية قائمة اللغات المسجلة في القائمة المنسدلة. إذا حاولت تبديل العناصر ، فيجب أن تكون قادرا على رؤية أن محتوى النص يتغير.