A létrehozott területi beállítások listájának lekérése

Oldal frissítve :
Oldal létrehozásának dátuma :

Ellenőrzési környezet

Windows
  • Windows 11 esetén
Unity-szerkesztő
  • 2021.3.12f1
Beviteli rendszer (Unity Technologies)
  • 1.4.4
Lokalizáció (Unity Technologies)
  • 1.3.2

A tipp előfeltételei

A következő beállításokat előre elvégeztük a tipp leírásának előfeltételeként.

Tippjeink céljai

Megjeleníti a megfelelő területi beállítások listáját a legördülő felhasználói felületen, és a megjelenített szöveget a felhasználó által kiválasztott területi beállításnak megfelelően váltja.

Előfeltétel ismeretek és felkészülés

Ez a tipp feltételezi a következő szöveg honosítását: Először olvassa el az alábbi tippeket a honosított szöveg megjelenítésének előkészítéséhez.

Területi beállítás módosítása legördülő elhelyezés

Legördülő menüt biztosít a területi beállítások listájának megjelenítéséhez. Csak a megjelenítésre és a kiválasztásra van szüksége, ezért győződjön meg arról, hogy a felhasználói felület paraméterei megfelelően vannak beállítva.

A területi beállítások listájának lekérése

A létrehozott területi beállítások LocalizationSettings.AvailableLocales.Locales listáját a mappában kaphatja meg. Ha ezt használja, és a jelenet elején a legördülő menüre állítja, akkor rendben van. Előfordulhat azonban, hogy az inicializálás nem fejeződött be a játék indításakor Localization , ezért előfordulhat, hogy meg kell várnia, amíg befejeződik.

Először hozzon létre egy szkriptet. DropDownEvent Hagyja meg a nevet .

A szkript így néz ki:

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 A metódus a jelenet elején végzi el a feldolgozást, de ezen a ponton Localization előfordulhat, hogy az inicializálása még nem fejeződött be. await LocalizationSettings.InitializationOperation.Task Várja meg, amíg az inicializálás befejeződik. await , ezért Start kérjük, adja hozzá a async módszerhez.

LocalizationSettings.AvailableLocales.Locales Ezután tartalmazza a létrehozott területi beállítások listáját, így foreach annyi területi beállítást dolgozhat fel, amennyit csak akar. Dropdown.OptionData Állítsa Dropdown a területi beállítás nevét értékre, és adja hozzá a értékhez.

Az aktuális területi beállítás legördülő menüből való kiválasztásához Dropdown.value keresse meg a cél területi beállítást a tulajdonságban, és állítsa be az indexet.

Ez a lista létrehozásának vége, de szeretnék egy olyan folyamatot is belefoglalni, amely megváltoztatja a területi beállítást a legördülő elem kiválasztásakor. onValueChanged Területi beállításokat ad hozzá az eseményhez. Ez ugyanaz, mint az előző tipp.

Csatolja a létrehozott szkriptet a legördülő menühöz.

Futtatás és ellenőrzés

Próbálja meg futtatni a játékot, hogy megnézze. Van idő, amikor a területi beállítások listája nincs beállítva közvetlenül a játék indítása után, Localization mert nincs inicializálva.

Egy kis idő elteltével látnia kell a legördülő menüben regisztrált területi beállítások listáját. Ha megpróbál váltani az elemek között, látnia kell, hogy a szöveg tartalma megváltozik.