Landinstelling op elk gewenst moment wijzigen
Verificatieomgeving
- Ramen
-
- Voor Windows 11
- Unity Editor
-
- 2021.3.12f1
- Invoersysteem (Unity Technologies)
-
- 1.4.3
- Lokalisatie (Unity Technologies)
-
- 1.3.2
Vereisten voor deze tip
De volgende instellingen zijn vooraf gemaakt als uitgangspunt voor de beschrijving van deze tip.
Vereiste kennis en voorbereiding
In deze tip wordt uitgegaan van lokalisatie van de volgende tekst: Raadpleeg eerst de volgende tips om u voor te bereiden op het weergeven van gelokaliseerde tekst.
Knoppen plaatsen voor het wijzigen van landinstellingen
Als je het in de Unity Editor uitvoert, kun je de landinstelling in de rechterbovenhoek van het scherm wijzigen, maar na het bouwen van het spel heeft het die functie niet en moet je het zelf voorbereiden. Deze keer plaats ik een knop om te schakelen tussen de drie talen "Japans (ja)", "Engels (en)" en "Spaans (es)" en klik ik om ze te schakelen.
Scripting voor knoppen
Zorg ervoor dat de doelmethode wordt aangeroepen wanneer u op de knop klikt. Dit is een procedure voor algemeen gebruik, dus ik zal de details weglaten. Zie de volgende tips voor gedetailleerde instructies.
ButtonEvent
Maak een script met de naam .
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()
{
}
}
Wijs elke methode toe aan een klik op de knop.
Landinstellingen afhandelen
Wijzig de code als volgt:
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");
}
}
De wijziging zelf is eenvoudig en kan worden geschakeld door eenvoudig LocalizationSettings.SelectedLocale
het doel Locale
in de eigenschap in te stellen.
Locale
Locale.CreateLocale
kan worden gemaakt door de naam van de landinstelling in de methode in te stellen.
Aangezien het landinstellingswijzigingsproces echter asynchroon is,LocalizationSettings.SelectedLocale
betekent het volgende proces dat wordt ingesteld niet dat de landinstelling al volledig is overgeschakeld.
Wees voorzichtig als u landinstellingsafhankelijke bewerkingen uitvoert.
Uitvoeren en verifiëren
Dit is alles wat er is, dus voer het alsjeblieft uit en controleer de beweging. In de rechterbovenhoek van het spelscherm kun je zien dat de verschillende bronnen dynamisch schakelen op dezelfde manier als wanneer je de landinstelling wijzigt.