Skip to content

Commit dfeea54

Browse files
committed
Update README.md
1 parent f34c57e commit dfeea54

File tree

1 file changed

+84
-2
lines changed

1 file changed

+84
-2
lines changed

README.md

Lines changed: 84 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,84 @@
1-
# Unity-LocalizedImageBinder
2-
Компонент для автоматической привязки локализованных спрайтов к Image с помощью LocalizeSpriteEvent.
1+
# LocalizedImageBinder
2+
3+
`LocalizedImageBinder` — это компонент Unity, предназначенный для автоматизации процесса связывания `LocalizeSpriteEvent` с компонентом `Image`. Скрипт устраняет необходимость ручной настройки в инспекторе, автоматически добавляя и управляя обработчиками событий, связанными с локализацией спрайтов.
4+
5+
## Основная задача
6+
При использовании Unity Localization в связке с компонентами `Image` часто требуется вручную привязывать событие `OnUpdateAsset` к свойству `sprite` объекта `Image`. Это может быть трудоёмким и подверженным ошибкам процессом, особенно в проектах с большим количеством локализованных спрайтов. Этот компонент решает проблему автоматической привязки, что экономит время и снижает вероятность ошибок.
7+
8+
## Особенности
9+
- Автоматическая привязка `LocalizeSpriteEvent` к `Image.sprite`.
10+
- Удаление "висячих" подписок при удалении компонента.
11+
- Работа в режиме редактора и игры.
12+
- Гарантированное отсутствие дублирующихся подписок.
13+
- Простая интеграция с существующими проектами.
14+
15+
## Установка
16+
1. Скопируйте скрипт `LocalizedImageBinder` в папку `Scripts` вашего Unity проекта.
17+
2. Убедитесь, что у вас установлены следующие зависимости:
18+
- [Unity UI](https://docs.unity3d.com/Packages/com.unity.ugui@latest).
19+
- [Unity Localization](https://docs.unity3d.com/Packages/com.unity.localization@latest).
20+
21+
---
22+
23+
## Использование
24+
1. Добавьте компонент `LocalizedImageBinder` на объект с компонентом `Image`.
25+
2. Убедитесь, что на том же объекте уже присутствует компонент `LocalizeSpriteEvent`. Если его нет, Unity автоматически добавит его благодаря атрибуту `[RequireComponent]`.
26+
3. В инспекторе настройте таблицу и записи локализации для компонента `LocalizeSpriteEvent`.
27+
28+
---
29+
30+
## Пример :D
31+
### До использования
32+
Вручную настройте `LocalizeSpriteEvent`:
33+
1. Добавьте компонент `LocalizeSpriteEvent`.
34+
2. Вручную свяжите событие `OnUpdateAsset` с `Image.sprite`.
35+
3. Убедитесь, что подписка корректно настроена.
36+
37+
### После использования
38+
Просто добавьте компонент `LocalizedImageBinder` на объект, и всё произойдёт автоматически:
39+
```csharp
40+
[AddComponentMenu("0x_/Localization/LocalizedImageBinder")]
41+
```
42+
43+
### Результат
44+
- `OnUpdateAsset` автоматически настроено на обновление `Image.sprite`.
45+
- Подписка удаляется при удалении компонента.
46+
<img width="677" alt="image" src="https://github.com/user-attachments/assets/example-image.png" />
47+
48+
---
49+
50+
## Ограничения :3
51+
- Работает только с компонентом `Image`. Для других компонентов (например, `RawImage`) потребуется модификация скрипта.
52+
- Динамическая привязка работает только для `LocalizeSpriteEvent` на том же объекте.
53+
54+
---
55+
56+
## Проблемы, которые решает :3
57+
- Устранение ручной настройки связей между `LocalizeSpriteEvent` и `Image`.
58+
- Предотвращение накопления ненужных подписок, которые могут вызывать утечки памяти или ошибки.
59+
- Повышение удобства и автоматизация локализации спрайтов.
60+
61+
---
62+
63+
## Как это работает :3
64+
1. При добавлении компонента `LocalizedImageBinder`:
65+
- Проверяется наличие `LocalizeSpriteEvent` и `Image`.
66+
- Если их нет, они добавляются автоматически.
67+
- Настраивается связь между `OnUpdateAsset` и `Image.sprite`.
68+
2. При удалении компонента:
69+
- Все подписки очищаются, чтобы избежать утечек.
70+
3. В режиме редактора:
71+
- Обеспечивается возможность визуального контроля через инспектор.
72+
73+
---
74+
75+
## Атрибуты :3
76+
- `[SelectionBase]`: Выделяет объект с компонентом `LocalizedImageBinder` при клике на дочерние объекты в сцене. Это упрощает выбор объекта в сложных иерархиях.
77+
- `[DisallowMultipleComponent]`: Запрещает добавлять несколько экземпляров компонента `LocalizedImageBinder` на один объект, предотвращая дублирование логики и возможные ошибки.
78+
- `[ExecuteAlways]`: Обеспечивает выполнение компонента как в режиме игры, так и в режиме редактора. Это полезно для автоматической настройки в редакторе.
79+
- `[RequireComponent]`: Гарантирует наличие необходимых компонентов `Image`, `LocalizeSpriteEvent` и `RectTransform`, предотвращая ошибки, если какой-либо из них отсутствует.
80+
81+
---
82+
83+
## Лицензия ;3
84+
Этот скрипт распространяется на условиях MIT License :3

0 commit comments

Comments
 (0)