A létrehozott területi beállítások listájának lekérése
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.