LocalizedImageBinder
— это компонент Unity, предназначенный для автоматизации процесса связывания LocalizeSpriteEvent
с компонентом Image
. Скрипт устраняет необходимость ручной настройки в инспекторе, автоматически добавляя и управляя обработчиками событий, связанными с локализацией спрайтов.
При использовании Unity Localization в связке с компонентами Image
часто требуется вручную привязывать событие OnUpdateAsset
к свойству sprite
объекта Image
. Это может быть трудоёмким и подверженным ошибкам процессом, особенно в проектах с большим количеством локализованных спрайтов. Этот компонент решает проблему автоматической привязки, что экономит время и снижает вероятность ошибок.
- Автоматическая привязка
LocalizeSpriteEvent
кImage.sprite
. - Удаление "висячих" подписок при удалении компонента.
- Работа в режиме редактора и игры.
- Гарантированное отсутствие дублирующихся подписок.
- Простая интеграция с существующими проектами.
- Скопируйте скрипт
LocalizedImageBinder
в папкуScripts
вашего Unity проекта. - Убедитесь, что у вас установлены следующие зависимости:
- Добавьте компонент
LocalizedImageBinder
на объект с компонентомImage
. - Убедитесь, что на том же объекте уже присутствует компонент
LocalizeSpriteEvent
. Если его нет, Unity автоматически добавит его благодаря атрибуту[RequireComponent]
. - В инспекторе настройте таблицу и записи локализации для компонента
LocalizeSpriteEvent
.
Вручную настройте LocalizeSpriteEvent
:
- Добавьте компонент
LocalizeSpriteEvent
. - Вручную свяжите событие
OnUpdateAsset
сImage.sprite
. - Убедитесь, что подписка корректно настроена.
Просто добавьте компонент LocalizedImageBinder
на объект, и всё произойдёт автоматически:
[AddComponentMenu("0x_/Localization/LocalizedImageBinder")]
OnUpdateAsset
автоматически настроено на обновлениеImage.sprite
.- Подписка удаляется при удалении компонента.
- Работает только с компонентом
Image
. Для других компонентов (например,RawImage
) потребуется модификация скрипта. - Динамическая привязка работает только для
LocalizeSpriteEvent
на том же объекте.
- Устранение ручной настройки связей между
LocalizeSpriteEvent
иImage
. - Предотвращение накопления ненужных подписок, которые могут вызывать утечки памяти или ошибки.
- Повышение удобства и автоматизация локализации спрайтов.
- При добавлении компонента
LocalizedImageBinder
:- Проверяется наличие
LocalizeSpriteEvent
иImage
. - Если их нет, они добавляются автоматически.
- Настраивается связь между
OnUpdateAsset
иImage.sprite
.
- Проверяется наличие
- При удалении компонента:
- Все подписки очищаются, чтобы избежать утечек.
- В режиме редактора:
- Обеспечивается возможность визуального контроля через инспектор.
[SelectionBase]
: Выделяет объект с компонентомLocalizedImageBinder
при клике на дочерние объекты в сцене. Это упрощает выбор объекта в сложных иерархиях.[DisallowMultipleComponent]
: Запрещает добавлять несколько экземпляров компонентаLocalizedImageBinder
на один объект, предотвращая дублирование логики и возможные ошибки.[ExecuteAlways]
: Обеспечивает выполнение компонента как в режиме игры, так и в режиме редактора. Это полезно для автоматической настройки в редакторе.[RequireComponent]
: Гарантирует наличие необходимых компонентовImage
,LocalizeSpriteEvent
иRectTransform
, предотвращая ошибки, если какой-либо из них отсутствует.
Этот скрипт распространяется на условиях MIT License :3