Skift landestandard når som helst
Miljø til bekræftelse
- Windows
-
- Windows 11
- Enhedslistens redaktør
-
- 2021.3.12f1
- Inputsystem (Unity-teknologier)
-
- 1.4.3
- 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.
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 knapper til ændring af landestandard
Hvis du kører det i Unity Editor, kan du ændre landestandarden i øverste højre hjørne af skærmen, men efter at have bygget spillet har det ikke den funktion, og du skal selv forberede det. Denne gang vil jeg placere en knap for at skifte mellem de tre sprog "japansk (ja)", "engelsk (en)" og "spansk (es)" og klikke for at skifte dem.
Scripting til knapper
Sørg for, at målmetoden kaldes, når du klikker på knappen. Dette er en generel procedure, så jeg vil udelade detaljerne. Se følgende tip for detaljerede instruktioner.
ButtonEvent
Opret et script med navnet .
using UnityEngine;
public class ButtonEvent : MonoBehaviour
{
<summary>Japanese (ja) ボタンをクリックしたとき。</summary>
public void OnClickJa()
{
}
<summary>English (en) ボタンをクリックしたとき。</summary>
public void OnClickEn()
{
}
<summary>Spanish (es) ボタンをクリックしたとき。</summary>
public void OnClickEs()
{
}
}
Tildel hver metode til et klik på en knap.
Håndtering af ændringer af landestandard
Koden ændres på følgende måde:
using UnityEngine;
using UnityEngine.Localization;
using UnityEngine.Localization.Settings;
public class ButtonEvent : MonoBehaviour
{
<summary>Japanese (ja) ボタンをクリックしたとき。</summary>
public void OnClickJa()
{
LocalizationSettings.SelectedLocale = Locale.CreateLocale("ja");
}
<summary>English (en) ボタンをクリックしたとき。</summary>
public void OnClickEn()
{
LocalizationSettings.SelectedLocale = Locale.CreateLocale("en");
}
<summary>Spanish (es) ボタンをクリックしたとき。</summary>
public void OnClickEs()
{
LocalizationSettings.SelectedLocale = Locale.CreateLocale("es");
}
}
Selve ændringen er enkel LocalizationSettings.SelectedLocale
og kan skiftes ved blot at indstille målet Locale
i ejendommen.
Locale
Locale.CreateLocale
kan oprettes ved at indstille navnet på landestandarden i metoden.
Men da landestandardændringsprocessen er asynkron, betyder den næste proces, der indstilles, ikke,LocalizationSettings.SelectedLocale
at landestandarden allerede er skiftet helt.
Vær forsigtig, hvis du udfører landestandardafhængige handlinger.
Kør og bekræft
Dette er alt, hvad der er til det, så kør det og kontroller bevægelsen. I øverste højre hjørne af spilskærmen kan du se, at de forskellige ressourcer skifter dynamisk på samme måde, som når du ændrer landestandarden.