Промяна на езиковата променлива по всяко време
Среда за проверка
- Уиндоус
-
- Прозорци 11
- Редактор на единство
-
- 2021.3.12е1
- Входна система (Unity Technologies)
-
- 1.4.3
- Локализация (Unity Technologies)
-
- 1.3.2
Предпоставки за този съвет
Следните настройки са направени предварително като предпоставка за описанието на този съвет.
Предварителни знания и подготовка
Този съвет предполага локализация на следния текст: Първо, моля, вижте следните съвети, за да се подготвите за показване на локализиран текст.
Поставяне на бутони за промяна на езиковата променлива
Ако го стартирате в редактора на Unity, можете да промените локала в горния десен ъгъл на екрана, но след изграждането на играта, тя няма тази функция и трябва да я подготвите сами. Този път ще поставя бутон за превключване между трите езика "японски (ja)", "английски (en)" и "испански (es)" и ще кликна, за да ги превключа.
Скриптове за бутони
Уверете се, че целевият метод е извикан, когато щракнете върху бутона. Това е процедура с общо предназначение, така че ще пропусна подробностите. Вижте следните съвети за подробни инструкции.
ButtonEvent
Създайте скрипт с името .
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()
{
}
}
Присвояване на всеки метод на щракване върху бутон.
Обработка на промените в езиковите променливи
Променете кода, както следва:
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");
}
}
Самата промяна е проста LocalizationSettings.SelectedLocale
и може да се превключва чрез просто задаване на целта Locale
в свойството.
Locale
Locale.CreateLocale
може да се създаде чрез задаване на името на езиковата променлива в метода.
Тъй като обаче процесът на промяна на езиковата променлива е асинхронен, следващият процес, който задава, не означава,LocalizationSettings.SelectedLocale
че езиковата променлива вече е напълно превключена.
Бъдете внимателни, ако извършвате операции, зависими от локализацията.
Изпълнение и проверка
Това е всичко, което има, така че, моля, пуснете го и проверете движението. В горния десен ъгъл на екрана на играта можете да видите, че различните ресурси се превключват динамично по същия начин, както когато промените езиковата променлива.