Перейти к основному содержимому

Graphic & Renderer Binders

Биндеры для цвета и материалов UI-компонентов (Graphic) и 3D-объектов (Renderer).


Graphic (UI)

GraphicColorBinder

Привязка Graphic.color (Color). Работает с любым UI-компонентом, наследующим Graphic (Image, Text, RawImage и др.).

СвойствоОписание
ConverterIConverter<Color, Color> (опционально)

Режимы: OneWay, OneTime, OneWayToSource (TwoWay запрещён).

[ViewModel]
public partial class ThemeViewModel
{
[OneWayBind] private Color _buttonColor;
}

GraphicColorSwitcherBinder

bool → выбор между двумя цветами.


GraphicColorChannelBinder

Привязка отдельного компонента цвета (R, G, B или A) как float.

СвойствоОписание
_colorComponentКомпонент цвета: R, G, B, A
ConverterIConverter<float, float> (опционально)

Удобно для привязки alpha отдельно от остальных компонентов:

[ViewModel]
public partial class FadeViewModel
{
[OneWayBind] private float _alpha;
// GraphicColorChannelBinder с ColorChannels.A
}

Режимы: OneWay, OneTime, OneWayToSource.


GraphicColorChannelSwitcherBinder

bool → выбор между двумя значениями компонента цвета.


GraphicMaterialBinder

Привязка Graphic.material (Material).

Режимы: OneWay, OneTime, OneWayToSource.


GraphicMaterialSwitcherBinder

bool → выбор между двумя материалами.


Renderer (3D)

RendererMaterialsColorBinder

Привязка цвета материала Renderer через shader-свойство.

СвойствоОписание
_colorPropertyNameИмя shader-свойства (по умолчанию "_BaseColor")
ConverterIConverter<Color, Color> (опционально)

Устанавливает цвет всех материалов Renderer.materials одновременно (материалы инстанцируются для этого рендерера). Используется Shader.PropertyToID для кэширования.

Режимы: OneWay, OneTime, OneWayToSource.

[ViewModel]
public partial class HighlightViewModel
{
[OneWayBind] private Color _highlightColor;
// RendererMaterialsColorBinder с _colorPropertyName = "_BaseColor"
}

RendererMaterialsColorSwitcherBinder

bool → выбор между двумя цветами для shader-свойства.


RendererMaterialsBinder

Привязка Renderer.material (Material) или Renderer.materials (IReadOnlyCollection<Material>); null или пустая коллекция очищает массив. В OneWayToSource отдаёт sharedMaterial / sharedMaterials.

Режимы: OneWay, OneTime, OneWayToSource.


RendererPropertyBlock*MonoBinder

Float, Color, Vector, Texture: пишут одно shader-свойство через MaterialPropertyBlock, не инстанцируя материалы. Имя свойства задаётся в Inspector; пустое имя логируется и отключает запись до следующего bind.


RendererMaterialsSwitcherBinder

bool → выбор между двумя массивами материалов.


См. также