Získanie zoznamu vytvorených jazykov
Prostredie overovania
- Windows
-
- Windows 11
- Editor jednoty
-
- 2021.3.12F1
- Vstupný systém (Unity Technologies)
-
- 1.4.4
- Lokalizácia (Unity Technologies)
-
- 1.3.2
Predpoklady pre tento tip
Nasledujúce nastavenia boli vykonané vopred ako predpoklad pre popis tohto tipu.
Ciele našich tipov
Zobrazí zoznam zodpovedajúcich miestnych nastavení v rozbaľovacom používateľskom rozhraní a prepne zobrazovaný text tak, aby zodpovedal miestnym nastaveniam vybratým používateľom.
Nevyhnutné vedomosti a príprava
Tento tip predpokladá lokalizáciu nasledujúceho textu: Najprv si prečítajte nasledujúce tipy na prípravu na zobrazenie lokalizovaného textu.
Rozbaľovacie umiestnenie na zmenu miestnych nastavení
Poskytuje rozbaľovaciu ponuku na zobrazenie zoznamu miestnych nastavení. Stačí vedieť zobraziť a vybrať, preto sa uistite, že parametre používateľského rozhrania sú správne nastavené.
Získanie zoznamu miestnych nastavení
Zoznam miestnych nastavení LocalizationSettings.AvailableLocales.Locales
vytvorených môžete získať v aplikácii .
Ak ho použijete a nastavíte na rozbaľovaciu ponuku na začiatku scény, ste v poriadku.
Inicializácia sa však nemusí dokončiť pri Localization
spustení hry, takže možno budete musieť počkať na jej dokončenie.
Najprv vytvorte skript. DropDownEvent
Názov ponechajte ako .
Skript vyzerá 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
Metóda vykonáva spracovanie na začiatku scény, ale v tomto bode Localization
nemusí byť inicializácia dokončená.
await LocalizationSettings.InitializationOperation.Task
Počkajte na dokončenie inicializácie.
await
, preto Start
ho prosím pridajte do metódy async
.
LocalizationSettings.AvailableLocales.Locales
Ďalej obsahuje zoznam miestnych nastavení, ktoré ste vytvorili, takže foreach
spracujte toľko miestnych nastavení, koľko chcete.
Dropdown.OptionData
Nastavte Dropdown
názov miestneho nastavenia na a pridajte ho do priečinka .
Ak chcete vybrať Dropdown.value
aktuálne miestne nastavenie v rozbaľovacom zozname, vyhľadajte cieľové miestne nastavenie vo vlastnosti a nastavte index.
Toto je koniec vytvárania zoznamu, ale chcem tiež zahrnúť proces, ktorý zmení miestne nastavenie, keď je vybratá rozbaľovacia položka.
onValueChanged
Pridá prepínanie miestnych nastavení do udalosti. Je to rovnaké ako predchádzajúci tip.
Priložte vytvorený skript do rozbaľovacieho zoznamu.
Spustenie a overenie
Skúste spustiť hru a skontrolovať ju.
Existuje čas, keď zoznam miestnych nastavení nie je nastavený ihneď po spustení hry, Localization
pretože nie je inicializovaný.
Po krátkom čase by ste mali vidieť zoznam miestnych nastavení zaregistrovaných v rozbaľovacom zozname. Ak sa pokúsite prepnúť položky, mali by ste vidieť, že obsah textu sa zmení.