קבלת רשימה של אזורים שיצרת

עודכן דף :
תאריך יצירת דף :

סביבת אימות

חלונות
  • חלונות 11
עורך Unity
  • 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 הוספת החלפת אזור לאירוע. זה זהה לטיפ הקודם.

צרף את קובץ ה- Script שיצרת לרשימה הנפתחת.

הפעלה ואימות

נסה להפעיל את המשחק כדי לבדוק אותו. קיים זמן שבו רשימת האזורים אינה מוגדרת מיד לאחר הפעלת המשחק, Localization מכיוון שאינה מאותחלת.

לאחר זמן מה, אתה אמור להיות מסוגל לראות את רשימת האזורים הרשומים בתפריט הנפתח. אם תנסה להחליף פריטים, אתה אמור להיות מסוגל לראות שתוכן הטקסט משתנה.