MonoAlphaModifier is a component for controlling the transparency of visual objects in Unity.
- It manages the transparency of any supported visual components through automatically collected handlers (strategies).
- It can control a single object or an entire hierarchy branch.
- It supports hierarchical behavior: a parent’s alpha value affects all child modifiers.
MonoAlphaModifier automatically maintains a correct hierarchy:
- When created, enabled, or moved, the component searches for a parent
MonoAlphaModifier. - When removed or re‑parented, all links are rebuilt correctly.
- Any hierarchy change immediately updates the transparency of all affected objects.
Transparency logic:
- Each collected visual component receives its own handler that knows how to apply alpha (e.g., SpriteRenderer, ParticleSystem, Image, etc.).
- The modifier’s own
Alphavalue is multiplied by the parent’s alpha, formingTotalAlpha, which is applied to all collected handlers.
- Add the
MonoAlphaModifiercomponent to a GameObject. - In the component’s context menu, choose:
- Collect for Object — collect handlers only for this object.
- Collect for Branch — collect handlers for this object and all its children.
- In the
Alpha Strategieslist, adjust transparency limits for collected components if needed.
To control transparency from scripts, simply assign a value to the Alpha property.
- Alpha — the modifier’s own transparency value.
- TotalAlpha — the final transparency value after applying all parent modifiers.
To add support for a new type of visual component:
- Create a class implementing
IAlphaModifierStrategy. - Add the corresponding
buildertoStrategyBuildContextso it is automatically included during component scanning.
MonoAlphaModifier — компонент для управления прозрачностью визуальных объектов в Unity.
- Управляет прозрачностью любых визуальных компонентов через собранные обработчики (стратегии).
- Может контролировать конкретный объект или всю ветку (в иерархии).
- Поддерживает иерархию: альфа родителя влияет на дочерние модификаторы.
MonoAlphaModifier автоматически поддерживает иерархию:
- При создании, активации или перемещении компонент ищет родительский
MonoAlphaModifier. - При удалении связи так же корректно перестраиваются.
- При изменении иерархии прозрачность объектов сразу же обновляется, учитывая новую иерархию.
Логика изменения прозрачности:
- Для каждого собранного компонента создаётся свой обработчик-стратегия, знающий как менять его прозрачность, будто то Sprite, ParticleSystem или Image.
- Собственное значение
Alphaумножается на значение родителя формируяTotalAlpha, которая применяется как множитель для всех собранных обработчиков.
- Добавить компонент
MonoAlphaModifierна объект. - Выбрать в контекстом меню компонента:
2.1
Collect for Object- для контроля прозрачности текущего объекта 2.2Collect for Branch- для контроля прозрачности текущего объекта и дочерних. - В списке
Alpha Strategiesпри необходимости указать ограничение прозрачности для всех собранных компонентов.
Для управления прозрачностью через скрипты достаточно задать значение свойства Alpha.
Alpha— собственное значение модификатора.TotalAlpha— итоговое значение с учётом всех родительских модификаторов. Чтобы добавить поддержку нового типа визуального компонента:
- Создать класс, реализующий
IAlphaModifierStrategy. - Добавить соответствующий
builderвStrategyBuildContext, чтобы он автоматически собирался при сканировании объектов.