Releases: RimuruDev/Unity-LocalizedTMPTextBinder
v1.0.0.0
LocalizedTMPTextBinder
LocalizedTMPTextBinder
— это компонент Unity, предназначенный для автоматизации процесса связывания LocalizeStringEvent
с текстом TMP_Text
(TextMeshPro). Скрипт устраняет необходимость ручной настройки в инспекторе, автоматически добавляя и управляя обработчиками событий, связанными с локализацией текстовых элементов.
Основная задача
При использовании Unity Localization в связке с TextMeshPro часто требуется вручную привязывать событие OnUpdateString
к TMP_Text.text
. Это может быть трудоёмким и подверженным ошибкам процессом, особенно в крупных проектах. Этот компонент решает проблему автоматической привязки, что экономит время и предотвращает ошибки.
Особенности
- Автоматическая привязка
LocalizeStringEvent
кTMP_Text.text
. - Удаление "висячих" подписок при удалении компонента.
- Работа в режиме редактора и игры.
- Гарантированное отсутствие дублирующихся подписок.
- Простая интеграция с существующими проектами.
Установка
- Скопируйте скрипт
LocalizedTMPTextBinder
в папкуScripts
вашего Unity проекта. - Убедитесь, что у вас установлены следующие зависимости:


Использование
- Добавьте компонент
LocalizedTMPTextBinder
на объект, содержащийTMP_Text
, который вы хотите локализовать. - Убедитесь, что на том же объекте уже присутствует компонент
LocalizeStringEvent
. Если его нет, Unity автоматически добавит его благодаря атрибуту[RequireComponent]
. - В инспекторе задайте необходимые ссылки на таблицы и записи локализации в компоненте
LocalizeStringEvent
.
Пример :D
До использования
Вручную настройте LocalizeStringEvent
:
- Добавьте компонент
LocalizeStringEvent
. - Вручную свяжите событие
OnUpdateString
сTMP_Text.text
. - Убедитесь, что подписка корректно настроена.
После использования
Просто добавьте компонент LocalizedTMPTextBinder
на объект, и всё произойдёт автоматически:
[AddComponentMenu("0x_/Localization/LocalizedTMPTextBinder")]
Результат
OnUpdateString
автоматически настроено на обновлениеTMP_Text.text
.- Подписка удаляется при удалении компонента.

Ограничения :3
- Работает только с
TMP_Text
. Если вы используете другой тип текста, напримерUI.Text
, потребуется модификация скрипта. - Динамическая привязка работает только для
LocalizeStringEvent
на том же объекте.
Проблемы, которые решает :3
- Устранение ручной настройки связей между
LocalizeStringEvent
иTMP_Text
. - Предотвращение накопления ненужных подписок, которые могут вызывать утечки памяти или ошибки.
- Повышение удобства и автоматизация локализации текстовых элементов.
Как это работает :3
- При добавлении компонента
LocalizedTMPTextBinder
:- Проверяется наличие
LocalizeStringEvent
иTMP_Text
. - Если их нет, они добавляются автоматически.
- Настраивается связь между
OnUpdateString
и текстомTMP_Text
.
- Проверяется наличие
- При удалении компонента:
- Все подписки очищаются, чтобы избежать утечек.
- В режиме редактора:
- Обеспечивается возможность визуального контроля через инспектор.
Атрибуты :3
[SelectionBase]
: Выделяет объект с компонентомLocalizedTMPTextBinder
при клике на дочерние объекты в сцене. Это упрощает выбор объекта в сложных иерархиях.[DisallowMultipleComponent]
: Запрещает добавлять несколько экземпляров компонентаLocalizedTMPTextBinder
на один объект, предотвращая дублирование логики и возможные ошибки.[ExecuteAlways]
: Обеспечивает выполнение компонента как в режиме игры, так и в режиме редактора. Это полезно для автоматической настройки в редакторе.[RequireComponent]
: Гарантирует наличие необходимых компонентовTMP_Text
,LocalizeStringEvent
,RectTransform
иCanvasRenderer
, предотвращая ошибки, если какой-либо из них отсутствует.
Лицензия ;3
Этот скрипт распространяется на условиях MIT License :3
Full Changelog: https://github.com/RimuruDev/Unity-LocalizedTMPTextBinder/commits/v1.0.0.0