Изменение языкового стандарта в любое время
Среда верификации
- Виндоус
-
- Windows 11
- Редактор Unity
-
- 2021.3.12f1
- Система ввода (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
что языковой стандарт уже полностью переключен.
Будьте осторожны при выполнении операций, зависящих от языкового стандарта.
Запуск и проверка
Это все, что нужно сделать, поэтому, пожалуйста, запустите его и проверьте движение. В правом верхнем углу игрового экрана вы можете видеть, что различные ресурсы динамически переключаются так же, как и при смене локали.