Змінення мови в будь-який час

Сторінка оновлюється :
Дата створення сторінки :

Середовище перевірки

Вікна
  • вікна 11
Редактор єдності
  • 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 що локалізацію вже повністю змінено. Будьте обережні, якщо виконуєте операції, що залежать від локалізації.

Запуск і перевірка

Це все, що є для цього, тому, будь ласка, запустіть його та перевірте рух. У правому верхньому кутку екрана гри ви можете побачити, що різні ресурси перемикаються динамічно так само, як і при зміні локалі.