Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/rimurudev/unity-localizedimagebinder

Компонент для автоматической привязки локализованных спрайтов к Image с помощью LocalizeSpriteEvent.
https://github.com/rimurudev/unity-localizedimagebinder

editorutility localization localization-binder localization-sprite localization-tool localizedassetbehaviour localizedimagebinder localizespriteevent textmesh textmeshpro unity-localization unity-localization-sprite unityeventstring unityeventtools

Last synced: 22 days ago
JSON representation

Компонент для автоматической привязки локализованных спрайтов к Image с помощью LocalizeSpriteEvent.

Awesome Lists containing this project

README

        

# LocalizedImageBinder

`LocalizedImageBinder` — это компонент Unity, предназначенный для автоматизации процесса связывания `LocalizeSpriteEvent` с компонентом `Image`. Скрипт устраняет необходимость ручной настройки в инспекторе, автоматически добавляя и управляя обработчиками событий, связанными с локализацией спрайтов.

## Основная задача
При использовании Unity Localization в связке с компонентами `Image` часто требуется вручную привязывать событие `OnUpdateAsset` к свойству `sprite` объекта `Image`. Это может быть трудоёмким и подверженным ошибкам процессом, особенно в проектах с большим количеством локализованных спрайтов. Этот компонент решает проблему автоматической привязки, что экономит время и снижает вероятность ошибок.

## Особенности
- Автоматическая привязка `LocalizeSpriteEvent` к `Image.sprite`.
- Удаление "висячих" подписок при удалении компонента.
- Работа в режиме редактора и игры.
- Гарантированное отсутствие дублирующихся подписок.
- Простая интеграция с существующими проектами.

## Установка
1. Скопируйте скрипт `LocalizedImageBinder` в папку `Scripts` вашего Unity проекта.
2. Убедитесь, что у вас установлены следующие зависимости:
- [Unity UI](https://docs.unity3d.com/Packages/com.unity.ugui@latest).
- [Unity Localization](https://docs.unity3d.com/Packages/com.unity.localization@latest).
image
image

---

## Использование
1. Добавьте компонент `LocalizedImageBinder` на объект с компонентом `Image`.
2. Убедитесь, что на том же объекте уже присутствует компонент `LocalizeSpriteEvent`. Если его нет, Unity автоматически добавит его благодаря атрибуту `[RequireComponent]`.
3. В инспекторе настройте таблицу и записи локализации для компонента `LocalizeSpriteEvent`.

---

## Пример :D
### До использования
Вручную настройте `LocalizeSpriteEvent`:
1. Добавьте компонент `LocalizeSpriteEvent`.
2. Вручную свяжите событие `OnUpdateAsset` с `Image.sprite`.
3. Убедитесь, что подписка корректно настроена.

### После использования
Просто добавьте компонент `LocalizedImageBinder` на объект, и всё произойдёт автоматически:
```csharp
[AddComponentMenu("0x_/Localization/LocalizedImageBinder")]
```

### Результат
- `OnUpdateAsset` автоматически настроено на обновление `Image.sprite`.
- Подписка удаляется при удалении компонента.
image

---

## Ограничения :3
- Работает только с компонентом `Image`. Для других компонентов (например, `RawImage`) потребуется модификация скрипта.
- Динамическая привязка работает только для `LocalizeSpriteEvent` на том же объекте.

---

## Проблемы, которые решает :3
- Устранение ручной настройки связей между `LocalizeSpriteEvent` и `Image`.
- Предотвращение накопления ненужных подписок, которые могут вызывать утечки памяти или ошибки.
- Повышение удобства и автоматизация локализации спрайтов.

---

## Как это работает :3
1. При добавлении компонента `LocalizedImageBinder`:
- Проверяется наличие `LocalizeSpriteEvent` и `Image`.
- Если их нет, они добавляются автоматически.
- Настраивается связь между `OnUpdateAsset` и `Image.sprite`.
2. При удалении компонента:
- Все подписки очищаются, чтобы избежать утечек.
3. В режиме редактора:
- Обеспечивается возможность визуального контроля через инспектор.

---

## Атрибуты :3
- `[SelectionBase]`: Выделяет объект с компонентом `LocalizedImageBinder` при клике на дочерние объекты в сцене. Это упрощает выбор объекта в сложных иерархиях.
- `[DisallowMultipleComponent]`: Запрещает добавлять несколько экземпляров компонента `LocalizedImageBinder` на один объект, предотвращая дублирование логики и возможные ошибки.
- `[ExecuteAlways]`: Обеспечивает выполнение компонента как в режиме игры, так и в режиме редактора. Это полезно для автоматической настройки в редакторе.
- `[RequireComponent]`: Гарантирует наличие необходимых компонентов `Image`, `LocalizeSpriteEvent` и `RectTransform`, предотвращая ошибки, если какой-либо из них отсутствует.

---

## Лицензия ;3
Этот скрипт распространяется на условиях MIT License :3