ididdidi

Cogito, ergo sum

^

Unity: Простая локализация ассетов

Pic. 1. View Пакет для легкой локализации ассетов в Unity3d.

1. Настройка

В верхнем меню выберите: Window -> Localization Storage.

Pic. 2. Кнопка настроек

В открывшемся окне Хранилище локализаций нажмите на ⚙ рядом с полем поиска.

Pic. 3. Настройки

В открывшейся вкладке вы можете добавить языки и типы ресурсов, необходимые для локализации.

Pic. 4. Добавить язык

Чтобы добавить язык, нажмите + внизу списка и выберите его из списка основных языков системы Unity.

Pic. 5. Добавить тип ассета

Чтобы добавить новый тип ассета для локализации, нажмите + внизу списка с типами.

Pic. 6. Настройки

Перетащите образец актива по умолчанию в появившееся поле. Дождитесь завершения генерации кода.

Pic. 7. Новый тип ресурсов

В списке локализаций появится новый пункт соответствующего типа, при клике по которому откроется список локализаций данного типа.

Pic. 8. Локализация по умолчанию

В списке локализаций данного типа будет локализация по умолчанию. Вы можете редактировать локализацию по умолчанию, выбрав её и кликнув на иконку с инструментами в верхнем правом углу окна локализации.

Pic. 9. Редактирование локализации по умолчанию

Это разблокирует ресурсы используемых языков для изменения.

2. Применение локализации к объекту

Выберите объект, который собираетесь локализовать. Добавьте к нему компонент локализации ресурса: Add component -> Localize -> [Resource type]Localization. Pic. 10. Add Localization Component

Pic. 11. Localization Component

Добавьте объект в список обработчиков и выберите свойство, соответствующее типу ресурса (обычно они находятся вверху выпадающего списка)

Pic. 12. Add handler

Компонент будет устанавливать локализацию по умолчанию.

3. Изменение локализации

Вы можете изменить локализацию прямо на объекте, для этого нажмите кнопку Change Localization в окне инспектора компоненте локализации.

Pic. 13. Изменение Локализации

В открывшемся списке вы можете выбрать уже существующую локализацию для данного типа или добавить новую.

Новая локализация будет ссылаться на те же ресурсы что и локализация по умолчанию. Вы можете изменить их на другие ресурсы того же типа.

Внимание! При редактировании локализации используемой несколькими объектами, изменения коснутся всех объектов, использующих экземпляр данной локализации.

4. Управление локализациями в Runtime

Для управления локализацией в Runtime необходимо добавить на сцену компонент LocalizationController.

Pic. 14. LocalizationController

В поле Localization Storage должен быть добавлен Scriptable Object типа LocalizationStorage. В поле события On Chage Language вы можете добавить обработчик принимающий строку с названием языка.

Для взаимодействия с объектом типа LocalizationController в коде вы можете использовать следующие методы:

Метод Описание
GetInstance Статический метод, который создает или возвращает готовый экземпляр со сцены. Принимает аргумент dontDestroy который позволяет сохранить экземпляр объекта при смене сцены. Возвращает экземпляр LocalizationController.
Subscribe Позволяет экземпляру типа производного от LocalizationComponent, переданому в качестве аргумента, подписаться на изменения локализации.
Unsubscribe Позволяет экземпляру типа производного от LocalizationComponent, переданому в качестве аргумента, подписаться на изменения локализации.
SetNextLanguage Меняет язык на следующий в списке локализации.
SetPrevLanguage Меняет язык на предыдущий в списке локализации.
SetLanguage Устанавливает текущий язык и загружает локализованные ресурсы. В качестве аргумента принимает объект типа Language

Если у вас есть вопросы или предложения, смело пишите их на электронную почту, указанную на странице Контакты!

tags: c# - unity3d - work

2023-09-10