Få en liste over landestandarder, du har oprettet
Miljø til bekræftelse
- Windows
-
- Windows 11
- Enhedslistens redaktør
-
- 2021.3.12f1
- Inputsystem (Unity-teknologier)
-
- 1.4.4
- Lokalisering (Unity Technologies)
-
- 1.3.2
Forudsætninger for dette tip
Følgende indstillinger er foretaget på forhånd som en forudsætning for beskrivelsen af dette tip.
Mål for vores tips
Viser en liste over tilsvarende landestandarder i rullelisten og skifter visningsteksten, så den svarer til den landestandard, som brugeren har valgt.
Forudsætning viden og forberedelse
Dette tip forudsætter lokalisering af følgende tekst: Se først følgende tip for at forberede visning af lokaliseret tekst.
Placering af ændring af landestandard
Indeholder en rullemenu, hvor du kan få vist en liste over landestandarder. Du behøver kun at kunne vise og vælge, så sørg for, at brugergrænsefladeparametrene er indstillet korrekt.
Få en liste over landestandarder
Du kan få oprettet en liste over landestandarder LocalizationSettings.AvailableLocales.Locales
i .
Hvis du bruger dette og indstiller det til rullemenuen i starten af scenen, er du OK.
Initialiseringen er dog muligvis ikke fuldført, når Localization
du starter spillet, så du skal muligvis vente på, at det er fuldført.
Opret først et script. DropDownEvent
Lad navnet være .
Scriptet ser sådan ud:
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 udfører behandling i starten af scenen, men på dette tidspunkt Localization
, initialiseringen af er muligvis ikke afsluttet.
await LocalizationSettings.InitializationOperation.Task
Vent på, at initialiseringen er fuldført.
await
, så Start
tilføj det til async
metoden.
LocalizationSettings.AvailableLocales.Locales
Derefter indeholder den en liste over landestandarder, du har oprettet, så behandl så foreach
mange landestandarder, som du vil.
Dropdown.OptionData
Angiv Dropdown
landestandardnavnet til , og føj det til .
Hvis du vil vælge Dropdown.value
den aktuelle landestandard på rullelisten, skal du søge efter mållandestandarden i ejendommen og angive indekset.
Dette er slutningen på oprettelsen af listen, men jeg vil også medtage en proces, der ændrer landestandarden, når rullelisten er valgt.
onValueChanged
Føjer landestandardskift til hændelsen. Dette er det samme som det foregående tip.
Vedhæft det script, du oprettede, til rullemenuen.
Kør og bekræft
Prøv at køre spillet for at tjekke det ud.
Der er et tidspunkt, hvor landestandardlisten ikke er indstillet umiddelbart efter spillet starter, Localization
fordi den ikke initialiseres.
Efter lidt tid bør du kunne se listen over landestandarder, der er registreret i rullemenuen. Hvis du prøver at skifte element, bør du kunne se, at tekstens indhold ændres.