Získání seznamu národních prostředí, která jste vytvořili
Ověřovací prostředí
- Windows
-
- Systém Windows 11
- Editor jednoty
-
- 2021.3.12f1
- Vstupní systém (Unity Technologies)
-
- 1.4.4
- Lokalizace (Unity Technologies)
-
- 1.3.2
Předpoklady pro tento tip
Následující nastavení byla provedena předem jako předpoklad pro popis tohoto tipu.
Cíle našich tipů
Zobrazí seznam odpovídajících národních prostředí v rozevíracím uživatelském rozhraní a přepne zobrazovaný text tak, aby odpovídal národnímu prostředí vybranému uživatelem.
Předpoklady znalosti a příprava
Tento tip předpokládá lokalizaci následujícího textu: Nejprve si přečtěte následující tipy, abyste se připravili na zobrazení lokalizovaného textu.
Změna národního prostředí v rozevíracím seznamu
Poskytuje rozevírací seznam pro zobrazení seznamu národních prostředí. Musíte mít pouze možnost zobrazit a vybrat, takže se ujistěte, že jsou parametry uživatelského rozhraní nastaveny správně.
Získání seznamu národních prostředí
Můžete získat seznam národních prostředí LocalizationSettings.AvailableLocales.Locales
vytvořených v programu .
Pokud ji použijete a nastavíte na rozevírací seznam na začátku scény, jste v pořádku.
Inicializace však nemusí být dokončena při Localization
spuštění hry, takže možná budete muset počkat na její dokončení.
Nejprve vytvořte skript. DropDownEvent
Název ponechte jako .
Skript vypadá takto:
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
Metoda provádí zpracování na začátku scény, ale v tomto okamžiku Localization
nemusí být dokončena inicializace.
await LocalizationSettings.InitializationOperation.Task
Počkejte na dokončení inicializace.
await
, takže Start
jej prosím přidejte do async
metody.
LocalizationSettings.AvailableLocales.Locales
Dále obsahuje seznam národních prostředí, která jste vytvořili, takže foreach
zpracujte tolik národních prostředí, kolik chcete.
Dropdown.OptionData
Nastavte Dropdown
název národního prostředí na a přidejte jej do .
Chcete-li v rozevíracím seznamu vybrat Dropdown.value
aktuální národní prostředí, vyhledejte cílové národní prostředí ve službě a nastavte index.
Toto je konec vytváření seznamu, ale chci také zahrnout proces, který změní národní prostředí, když je vybrána položka rozevíracího seznamu.
onValueChanged
Přidá k události přepínání národního prostředí. To je stejné jako předchozí tip.
Připojte skript, který jste vytvořili, k rozevíracímu seznamu.
Spuštění a ověření
Zkuste spustit hru a podívejte se na to.
Stává se, že seznam národních prostředí není nastaven ihned po spuštění hry, Localization
protože není inicializován.
Po nějaké době byste měli vidět seznam národních prostředí registrovaných v rozevíracím seznamu. Pokud se pokusíte přepínat položky, měli byste vidět, že se obsah textu mění.