Получите локализованный текст и ресурсы в любое время
Среда верификации
- Виндоус
-
- Windows 11
- Редактор Unity
-
- 2021.3.12f1
- Система ввода (Unity Technologies)
-
- 1.4.4
- Локализация (Unity Technologies)
-
- 1.3.2
Предпосылки для этого совета
Следующие настройки были сделаны заранее в качестве предпосылки для описания этого совета.
Цели наших советов
При нажатии на кнопку на экране загрузки отображается целевой текст из таблицы локализации.
Необходимые знания и подготовка
Этот совет предполагает локализацию следующего текста: Однако, поскольку мы не будем реализовывать их все, мы разместим процедуру из 1 здесь, но упростим дублированный контент.
Установка пакета локализации
Процедура здесь такая же.
Создание локализации
Это то же самое, что и раньше, поэтому я выложу только изображение.
Здесь мы создаем папку «Локализация» в папке «Сцены» и создаем ее в ней.
Создание языкового стандарта
Это то же самое, что и раньше, поэтому я опущу подробную процедуру. Добавляются следующие языковые стандарты: «Японский (ja)», «Английский (en)» и «Испанский (es)».
Я указал папку «Локализация», упомянутую ранее.
Оставьте языковой стандарт по умолчанию «Японский (ja)».
Создание текстов
Оставьте имя TextTable
таблицы как .
Localization
Создайте папку внутри TextTable
папки и укажите ее.
Создайте текст. На этот раз цель состоит в том, чтобы получить его программно, чтобы вы могли зарегистрировать его на данный момент.
Размещение пользовательского интерфейса
Я хотел бы разместить текст и кнопку, и когда я нажимаю кнопку, я хочу отобразить текст текущего языкового стандарта.
Создание и прикрепление сценариев
Создайте сценарий. ButtonEvent
Оставьте имя как .
using UnityEngine;
using UnityEngine.Localization.Settings;
using UnityEngine.UI;
public class ButtonEvent : MonoBehaviour
{
[SerializeField] private Text Text;
public void OnClick()
{
// Localization から指定したテーブル名とキーからエントリーを取得します
var entry = LocalizationSettings.StringDatabase.GetTableEntry("TextTable", "Hello").Entry;
Text.text = entry.Value;
}
}
Укажите, что происходит при нажатии кнопки.
Все, что мы здесь делаем, это одно LocalizationSettings.StringDatabase.GetTableEntry
: вы можете получить запись найденного множества, указав имя таблицы и ключ, созданный в Локализации в методе.
На этот раз мы делаем это с текстом, но активы также LocalizationSettings.AssetDatabase
можно получить с помощью .
После того, как у вас есть запись, все, что вам нужно сделать, это получить ценность, которая у вас есть. Содержимое представляет собой текст выбранного языкового стандарта. На этот раз он получается синхронной обработкой, но можно использовать и асинхронные методы.
Присоедините сценарий к EventSystem. Также задайте текст.
Назначьте кнопке обработку кликов.
Запуск и проверка
Попробуйте запустить его после завершения настройки. Поскольку в пользовательском интерфейсе не задаются события локализации, текст не изменяется при выполнении.
Нажмите кнопку, чтобы переключиться на японский текст. Это связано с тем, что выбран текущий языковой стандарт японского языка.
Попробуйте изменить языковой стандарт в правом верхнем углу экрана, а затем нажать кнопку. Он должен измениться на текст целевого языкового стандарта.