Hämta en lista över språk som du har skapat
Verifiering miljö
- Windows
-
- Fönster 11
- Unity-redaktör
-
- 2021.3.12F1
- Inmatningssystem (Unity-teknik)
-
- 1.4.4
- Lokalisering (Unity-tekniker)
-
- 1.3.2
Förutsättningar för det här tipset
Följande inställningar har gjorts i förväg som en förutsättning för beskrivningen av detta tips.
Mål med våra tips
Visar en lista över motsvarande språkinställningar i det nedrullningsbara användargränssnittet och växlar visningstexten så att den matchar den språkinställning som användaren har valt.
Förkunskapskrav och förberedelse
Det här tipset förutsätter lokalisering av följande text: Läs först följande tips för att förbereda visning av lokaliserad text.
Listrutan Ändra språk
Innehåller en listruta för att visa en lista över språkinställningar. Du behöver bara kunna visa och välja, så se till att gränssnittsparametrarna är korrekt inställda.
Hämta en lista över språkinställningar
Du kan hämta en lista över språk LocalizationSettings.AvailableLocales.Locales
som skapats i .
Om du använder detta och ställer in det på rullgardinsmenyn i början av scenen är du OK.
Initieringen kanske inte har slutförts när Localization
du startar spelet, så du kan behöva vänta tills den har slutförts.
Skapa först ett skript. DropDownEvent
Lämna namnet som .
Skriptet ser ut så här:
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
Metoden utför bearbetning i början av scenen, men vid denna tidpunkt Localization
kanske initieringen av inte har slutförts.
await LocalizationSettings.InitializationOperation.Task
Vänta tills initieringen är klar.
await
, så Start
lägg till den i metoden async
.
LocalizationSettings.AvailableLocales.Locales
Innehåller sedan en lista över språkinställningar som du har skapat, så bearbeta så foreach
många språkinställningar du vill.
Dropdown.OptionData
Ange Dropdown
språknamnet till och lägg till det i .
Om du vill välja Dropdown.value
den aktuella språkinställningen i listrutan söker du efter målspråket i egendomen och anger indexet.
Det här är slutet på att skapa listan, men jag vill också inkludera en process som ändrar språkinställningen när listrutan är markerad.
onValueChanged
Lägger till språkväxling i händelsen. Detta är detsamma som föregående tips.
Bifoga skriptet som du skapade i listrutan.
Kör och verifiera
Prova att köra spelet för att kolla in det.
Det finns en tid då språklistan inte ställs in omedelbart efter att spelet startar, Localization
eftersom den inte initieras.
Efter en liten tid bör du kunna se listan över språk som är registrerade i rullgardinsmenyn. Om du försöker byta objekt bör du kunna se att innehållet i texten ändras.