Skip to main content

StarterKit Overview

StarterKit is the set of ready-to-use binders and components for Aspid.MVVM. Each binder connects one property of a Unity component to a ViewModel member, so no boilerplate has to be written by hand.

Every binder comes in two flavours:

  • Binder (POCO): a serializable class embedded into a [Bind] field of a View. No MonoBehaviour required.
  • MonoBinder: a MonoBehaviour wrapper added to a GameObject through the Inspector.

Text

Binders for TMP_Text (TextMeshPro). Details

ComponentData typeModesDescription
TextBinderstring, int, float, long, doubleOneWay, OneTime, OneWayToSourceTMP_Text.text with number support and CultureInfoMode
TextSwitcherBinderbool -> stringOneWay, OneTimeSwitches the text between two values
TextFontBinderTMP_FontAssetOneWay, OneTime, OneWayToSourceTMP_Text.font
TextFontSwitcherBinderbool -> TMP_FontAssetOneWay, OneTimeSwitches the font between two values
TextFontSizeBinderfloatOneWay, OneTime, OneWayToSourceTMP_Text.fontSize
TextFontSizeSwitcherBinderbool -> floatOneWay, OneTimeSwitches the font size
TextAlignmentBinderTextAlignmentOptionsOneWay, OneTime, OneWayToSourceTMP_Text.alignment
TextAlignmentSwitcherBinderbool -> TextAlignmentOptionsOneWay, OneTimeSwitches the alignment
TextFontStyleBinderFontStylesOneWay, OneTime, OneWayToSourceTMP_Text.fontStyle
TextAutoSizeBinderboolOneWay, OneTime, OneWayToSourceTMP_Text.enableAutoSizing
TextRichTextBinderboolOneWay, OneTime, OneWayToSourceTMP_Text.richText
TextCharacterSpacingBinderfloatOneWay, OneTime, OneWayToSourceTMP_Text.characterSpacing
TextLineSpacingBinderfloatOneWay, OneTime, OneWayToSourceTMP_Text.lineSpacing
TextMarginBinderVector4OneWay, OneTime, OneWayToSourceTMP_Text.margin (left, top, right, bottom)
TextMaxVisibleCharactersBinderintOneWay, OneTime, OneWayToSourceTMP_Text.maxVisibleCharacters

InputField

Binders for TMP_InputField (TextMeshPro). Details

ComponentData typeModesDescription
InputFieldBinderstring, int, float, long, doubleOneWay, TwoWay, OneTime, OneWayToSourceInput text with feedback
InputFieldCharacterValidationBinderCharacterValidationOneWay, OneTimeCharacter validation
InputFieldCharacterValidationSwitcherBinderbool -> CharacterValidationOneWay, OneTimeSwitches the validation
InputFieldContentTypeBinderContentTypeOneWay, OneTimeContent type of the field
InputFieldContentTypeSwitcherBinderbool -> ContentTypeOneWay, OneTimeSwitches the content type
InputFieldInputTypeBinderInputTypeOneWay, OneTimeInput type (Standard, AutoCorrect, Password)
InputFieldInputTypeSwitcherBinderbool -> InputTypeOneWay, OneTimeSwitches the input type
InputFieldLineTypeBinderLineTypeOneWay, OneTimeLine type (SingleLine, MultiLine)
InputFieldLineTypeSwitcherBinderbool -> LineTypeOneWay, OneTimeSwitches the line type
InputFieldCharacterLimitBinderintOneWay, OneTime, OneWayToSourceCharacter limit, 0 for none
InputFieldCaretPositionBinderintOneWay, OneTime, OneWayToSourceCaret position
InputFieldReadOnlyBinderboolOneWay, OneTime, OneWayToSourcereadOnly
InputFieldPlaceholderBinderGraphicOneWay, OneTime, OneWayToSourceplaceholder

Image

Binders for UnityEngine.UI.Image. Details

ComponentData typeModesDescription
ImageSpriteBinderSprite, Texture2DOneWay, OneTime, OneWayToSourceSprite with auto-disable on null
ImageSpriteSwitcherBinderbool -> SpriteOneWay, OneTimeSwitches the sprite between two values
ImageFillBinderfloatOneWay, OneTime, OneWayToSourcefillAmount (0-1)
ImageFillSwitcherBinderbool -> floatOneWay, OneTimeSwitches the fill
ImageSpriteAddressableMonoBinderstring, IKeyEvaluatorOneWay, OneTimeSprite loaded through Addressables (ASPID_MVVM_ADDRESSABLES_INTEGRATION)
ImageTypeBinderImage.TypeOneWay, OneTime, OneWayToSourceImage.type
ImagePreserveAspectBinderboolOneWay, OneTime, OneWayToSourcepreserveAspect
ImageFillOriginBinderintOneWay, OneTime, OneWayToSourcefillOrigin
ImageFillClockwiseBinderboolOneWay, OneTime, OneWayToSourcefillClockwise
Image{Sprite, Fill}Enum(Group)MonoBinderEnumOneWay, OneTimeValue by enum, for one Image or a group

RawImage

Binders for UnityEngine.UI.RawImage.

ComponentData typeModesDescription
RawImageTextureBinderTexture, SpriteOneWay, OneTime, OneWayToSourceTexture with auto-disable on null
RawImageTextureSwitcherBinderbool -> TextureOneWay, OneTimeSwitches the texture
RawImageTextureAddressableMonoBinderstring, IKeyEvaluatorOneWay, OneTimeTexture loaded through Addressables (ASPID_MVVM_ADDRESSABLES_INTEGRATION)
RawImageTextureEnum(Group)MonoBinderEnumOneWay, OneTimeTexture by enum, for one RawImage or a group
RawImageUvRectBinderRectOneWay, OneTime, OneWayToSourceuvRect; non-finite values are rejected

Button / Command

Command binders for UI elements.

ComponentData typeModesDescription
ButtonCommandBinderIRelayCommand, IRelayCommand<bool>OneWay, OneTimeCommand on Button.onClick with InteractableMode
ButtonCommandBinder<T><T1,T2,T3,T4>IRelayCommand<T…>OneWay, OneTimeCommand with 1–4 parameters from the Inspector
ButtonCommand{Int, Float, Bool, String, Object}MonoBinderIRelayCommand<T>OneWay, OneTimeReady-made Mono variants with one parameter
ToggleCommandBinderIRelayCommand, IRelayCommand<bool>OneWay, OneTimeCommand on Toggle.onValueChanged
SliderCommandBinderIRelayCommand<int/long/float/double>OneWay, OneTimeCommand on Slider.onValueChanged
DropdownCommandBinderIRelayCommand<int>OneWay, OneTimeCommand on TMP_Dropdown.onValueChanged
InputFieldCommandBinderIRelayCommand, IRelayCommand<string>OneWay, OneTimeCommand on a TMP_InputField event (UpdateInputFieldEvent)
ScrollRectCommandBinderIRelayCommand<Vector2>, IRelayCommand<Vector3>OneWay, OneTimeCommand on ScrollRect.onValueChanged
ScrollbarCommandBinderIRelayCommand<int/long/float/double>OneWay, OneTimeCommand on Scrollbar.onValueChanged
EventTriggerCommandBinderIRelayCommand, IRelayCommand<BaseEventData>, IRelayCommand<EventTriggerType>OneWay, OneTimeCommand on the chosen EventTrigger event; <T1..T3> variants with parameters

Slider

Binders for UnityEngine.UI.Slider.

ComponentData typeModesDescription
SliderValueBinderint, float, long, doubleOneWay, TwoWay, OneTime, OneWayToSourceSlider.value with feedback
SliderMinMaxBinderVector2OneWay, OneTime, OneWayToSourceSlider min/max (SliderRangeMode)
SliderMinMaxSwitcherBinderbool -> Vector2OneWay, OneTimeSwitches min/max
Slider{Value, MinMax}Enum(Group)MonoBinderEnumOneWay, OneTimeValue by enum, for one Slider or a group
SliderValueSwitcherMonoBinderbool -> floatOneWay, OneTimeSwitches Slider.value

Scrollbar

Binders for UnityEngine.UI.Scrollbar.

ComponentData typeModesDescription
ScrollbarValueBinderint, float, long, doubleOneWay, TwoWay, OneTime, OneWayToSourceScrollbar.value (in [0, 1]) with feedback
ScrollbarSizeBinderint, float, long, doubleOneWay, OneTime, OneWayToSourceScrollbar.size (in [0, 1])
ScrollbarValue{Switcher, Enum, EnumGroup}MonoBinderbool / EnumOneWay, OneTimeValue by flag or enum

ScrollRect

Binders for UnityEngine.UI.ScrollRect.

ComponentData typeModesDescription
ScrollRectNormalizedPositionBinderVector2OneWay, OneTime, OneWayToSourcenormalizedPosition (components in [0, 1])
ScrollRect{Horizontal, Vertical}NormalizedPositionBinderint, float, long, doubleOneWay, OneTime, OneWayToSourcePosition along one axis (in [0, 1])
ScrollRect{Horizontal, Vertical}BinderboolOneWay, OneTime, OneWayToSourceEnables scrolling along an axis
ScrollRect{…}Enum(Group)MonoBinderEnumOneWay, OneTimeValue by enum, for one ScrollRect or a group

Toggle

Binders for UnityEngine.UI.Toggle.

ComponentData typeModesDescription
ToggleIsOnBinderboolOneWay, TwoWay, OneTime, OneWayToSourceToggle.isOn with an optional converter
ToggleIsOnEnumBinderEnum -> boolOneWay, OneTimeisOn by enum value
ToggleIsOnEnumGroupBinderEnum -> boolOneWay, OneTimeisOn of a Toggle group by enum value
ToggleGroupAllowSwitchOffBinderboolOneWay, OneTimeToggleGroup.allowSwitchOff

Binders for TMP_Dropdown.

ComponentData typeModesDescription
DropdownValueBinderintOneWay, OneTime, OneWayToSourceSelected index
DropdownValueSwitcherBinderbool -> intOneWay, OneTimeSwitches the index
DropdownOptionsBinderList<string>, List<Sprite>, IEnumerable<OptionData>OneWay, OneTime, OneWayToSourceOption list
DropdownOptionsSwitcherBinderbool -> List<OptionData>OneWay, OneTimeSwitches the option list
DropdownOptionsByEnumMonoBinderEnumOneWay, OneTimeOptions from the values of an enum type
DropdownAlphaFadeSpeedBinderfloatOneWay, OneTime, OneWayToSourceFade speed
DropdownAlphaFadeSpeedSwitcherBinderbool -> floatOneWay, OneTimeSwitches the fade speed

GameObject

Binders for GameObject.

ComponentData typeModesDescription
GameObjectVisibleBinderboolOneWay, OneTime, OneWayToSourceSetActive
GameObjectVisibleByBindMonoBinderanyOneTimeObject shown while a binding exists
GameObjectTagBinderstringOneWay, OneTime, OneWayToSourcetag
GameObjectTagSwitcherBinderbool -> stringOneWay, OneTimeSwitches the tag
GameObjectLayerBinderintOneWay, OneTime, OneWayToSourcelayer; a missing index is rejected
GameObjectNameMonoBinderstringOneWay, OneTime, OneWayToSourceObject name; null clears
GameObjectInstantiateAddressableMonoBinderstring, IKeyEvaluatorOneWay, OneTimePrefab instance from Addressables (ASPID_MVVM_ADDRESSABLES_INTEGRATION)
GameObject{Visible, Tag}Enum(Group)MonoBinderEnumOneWay, OneTimeValue by enum, for one object or a group

Transform

Binders for Transform and RectTransform.

ComponentData typeModesDescription
TransformPositionBinderVector3OneWay, OneTime, OneWayToSourcelocalPosition
TransformPositionSwitcherBinderbool -> Vector3OneWay, OneTimeSwitches the position
TransformRotationBinderQuaternionOneWay, OneTime, OneWayToSourcelocalRotation
TransformRotationSwitcherBinderbool -> QuaternionOneWay, OneTimeSwitches the rotation
TransformEulerAnglesBinderVector3OneWay, OneTime, OneWayToSourcelocalEulerAngles
TransformEulerAnglesSwitcherBinderbool -> Vector3OneWay, OneTimeSwitches the Euler angles
TransformScaleBinderVector3, floatOneWay, OneTime, OneWayToSourcelocalScale
TransformScaleSwitcherBinderbool -> Vector3OneWay, OneTimeSwitches the scale
RectTransformAnchoredPositionBinderVector3OneWay, OneTime, OneWayToSourceanchoredPosition
RectTransformAnchoredPositionSwitcherBinderbool -> Vector3OneWay, OneTimeSwitches the anchored position
RectTransformSizeDeltaBinderVector3OneWay, OneTime, OneWayToSourcesizeDelta
RectTransformSizeDeltaSwitcherBinderbool -> Vector3OneWay, OneTimeSwitches the size
RectTransformAnchorMinBinderVector2OneWay, OneTime, OneWayToSourceanchorMin
RectTransformAnchorMaxBinderVector2OneWay, OneTime, OneWayToSourceanchorMax
RectTransformOffsetMinBinderVector2OneWay, OneTime, OneWayToSourceoffsetMin
RectTransformOffsetMaxBinderVector2OneWay, OneTime, OneWayToSourceoffsetMax
RectTransformPivotBinderVector2OneWay, OneTime, OneWayToSourcepivot
RectTransformAnchorMinSwitcherBinderbool -> Vector2OneWay, OneTimeSwitches anchorMin
RectTransformAnchorMaxSwitcherBinderbool -> Vector2OneWay, OneTimeSwitches anchorMax
RectTransformPivotSwitcherBinderbool -> Vector2OneWay, OneTimeSwitches pivot
TransformParentBinderTransformOneWay, OneTime, OneWayToSourceTransform.parent
TransformSiblingIndexBinderintOneWay, OneTime, OneWayToSourceIndex among siblings

CanvasGroup

Binders for CanvasGroup.

ComponentData typeModesDescription
CanvasGroupAlphaBinderfloatOneWay, OneTime, OneWayToSourcealpha
CanvasGroupAlphaSwitcherBinderbool -> floatOneWay, OneTimeSwitches the opacity
CanvasGroupInteractableBinderboolOneWay, OneTime, OneWayToSourceinteractable
CanvasGroupBlocksRaycastsBinderboolOneWay, OneTime, OneWayToSourceblocksRaycasts
CanvasGroupIgnoreParentGroupsBinderboolOneWay, OneTime, OneWayToSourceignoreParentGroups
CanvasGroup{…}Enum(Group)MonoBinderEnumOneWay, OneTimeValue by enum, for one CanvasGroup or a group

Animator

Binders for Animator.

ComponentData typeModesDescription
AnimatorSetBoolBinderboolOneWay, OneTime, OneWayToSourceSets a bool parameter; in OneWayToSource hands out Action<bool>/IRelayCommand<bool>
AnimatorSetIntBinderint, float, long, doubleOneWay, OneTime, OneWayToSourceSets an int parameter
AnimatorSetFloatBinderint, float, long, doubleOneWay, OneTime, OneWayToSourceSets a float parameter
AnimatorSetTriggerBinder / AnimatorResetTriggerBinderAction, IRelayCommandOneWayToSourceSetTrigger / ResetTrigger as a command for the ViewModel
AnimatorSpeedBinderint, float, long, doubleOneWay, OneTime, OneWayToSourceAnimator.speed
AnimatorLayerWeightBinderint, float, long, doubleOneWay, OneTime, OneWayToSourceLayer weight, [0, 1]
AnimatorControllerBinderRuntimeAnimatorControllerOneWay, OneTime, OneWayToSourceruntimeAnimatorController
AnimatorPlayStateBinderstringOneWay, OneTimeAnimator.Play of a state by name

Graphic / Renderer

Binders for Graphic (UI) and Renderer (3D).

ComponentData typeModesDescription
GraphicColorBinderColorOneWay, OneTime, OneWayToSourceGraphic.color
GraphicColorSwitcherBinderbool -> ColorOneWay, OneTimeSwitches the color
GraphicColorChannelBinderfloatOneWay, OneTimeSelected color channels (ColorChannels)
GraphicColorChannelSwitcherBinderbool -> floatOneWay, OneTimeSwitches the selected channels
GraphicMaterialBinderMaterialOneWay, OneTimeGraphic.material
GraphicMaterialSwitcherBinderbool -> MaterialOneWay, OneTimeSwitches the material
RendererMaterialsBinderMaterial, IReadOnlyCollection<Material>OneWay, OneTime, OneWayToSourceRenderer.material / materials
RendererMaterialsSwitcherBinderbool -> Material[]OneWay, OneTimeSwitches the material array
RendererMaterialsColorBinderColorOneWay, OneTime, OneWayToSourceShader property color on all materials
RendererMaterialsColorSwitcherBinderbool -> ColorOneWay, OneTimeSwitches the material color
RendererEnabledBinderboolOneWay, OneTime, OneWayToSourceRenderer.enabled
RendererShadowCastingBinderShadowCastingModeOneWay, OneTime, OneWayToSourceRenderer.shadowCastingMode
RendererSortingOrderBinderintOneWay, OneTime, OneWayToSourceRenderer.sortingOrder
RendererSortingLayerNameBinderstringOneWay, OneTime, OneWayToSourceRenderer.sortingLayerName
RendererPropertyBlock{Float, Color, Vector, Texture}MonoBinderfloat / Color / Vector4 / TextureOneWay, OneTimeShader property through MaterialPropertyBlock
LineRendererColorBinderColorOneWay, OneTime, OneWayToSourceLineRenderer start/end color (LineRendererColorMode)
LineRendererColorSwitcherBinderbool -> ColorOneWay, OneTimeSwitches the LineRenderer color
LineRendererColorEnum(Group)MonoBinderEnumOneWay, OneTimeColor by enum, for one LineRenderer or a group
LineRendererLoopBinderboolOneWay, OneTime, OneWayToSourceLineRenderer.loop
LineRendererWidthMultiplierBinderint, float, long, doubleOneWay, OneTime, OneWayToSourcewidthMultiplier (not below zero)

SpriteRenderer

Binders for SpriteRenderer (2D).

ComponentData typeModesDescription
SpriteRendererSpriteBinderSprite, Texture2DOneWay, OneTime, OneWayToSourceSpriteRenderer.sprite; a texture is wrapped in a sprite
SpriteRendererColorBinderColorOneWay, OneTime, OneWayToSourceSpriteRenderer.color
SpriteRendererFlipXBinder / FlipYBinderboolOneWay, OneTime, OneWayToSourceflipX / flipY
SpriteRendererSizeBinderVector2OneWay, OneTime, OneWayToSourcesize (Sliced/Tiled); negative components are zeroed
SpriteRendererSortingOrderBinderintOneWay, OneTime, OneWayToSourcesortingOrder
SpriteRenderer{Sprite, Color, FlipX, FlipY, SortingOrder}Enum(Group)MonoBinderEnumOneWay, OneTimeValue by enum, for one SpriteRenderer or a group

AudioSource

Binders for AudioSource.

ComponentData typeModesDescription
AudioSourceVolumeBinderfloatOneWay, OneTime, OneWayToSourceVolume
AudioSourcePitchBinderfloatOneWay, OneTime, OneWayToSourcePitch
AudioSourceClipBinderAudioClipOneWay, OneTime, OneWayToSourceAudio clip
AudioSourceMuteBinderboolOneWay, OneTime, OneWayToSourceMute
AudioSourceLoopBinderboolOneWay, OneTime, OneWayToSourceLoop
AudioSourceTimeBinderfloatOneWay, OneTime, OneWayToSourcePlayback position
AudioSourceSpatialBlendBinderfloatOneWay, OneTime, OneWayToSource2D/3D blend
AudioSourcePanStereoBinderfloatOneWay, OneTime, OneWayToSourceStereo pan
AudioSourceDopplerLevelBinderfloatOneWay, OneTime, OneWayToSourceDoppler level
AudioSourceMinMaxDistanceBinderVector2OneWay, OneTime, OneWayToSourceMin/max distance
AudioSourcePriorityBinderintOneWay, OneTime, OneWayToSourcePriority
AudioSourceSpreadBinderfloatOneWay, OneTime, OneWayToSourceSpread angle
AudioSourceOutputAudioMixerGroupBinderAudioMixerGroupOneWay, OneTime, OneWayToSourceMixer group
AudioSourceBypassEffectsBinderboolOneWay, OneTime, OneWayToSourceBypass effects
AudioSourceBypassListenerEffectsBinderboolOneWay, OneTime, OneWayToSourceBypass listener effects
AudioSourceBypassReverbZonesBinderboolOneWay, OneTime, OneWayToSourceBypass reverb zones
AudioSourceReverbZoneMixBinderfloatOneWay, OneTime, OneWayToSourceReverb zone mix
AudioSourceTimeSamplesBinderintOneWay, OneTime, OneWayToSourcePosition in samples

Collider

Binders for colliders. Details

ComponentData typeModesDescription
ColliderEnabledBinderboolOneWay, OneTime, OneWayToSourceCollider.enabled
ColliderIsTriggerBinderboolOneWay, OneTime, OneWayToSourceCollider.isTrigger
ColliderMaterialBinderPhysicsMaterialOneWay, OneTime, OneWayToSourcePhysics material
ColliderProvidesContactsBinderboolOneWay, OneTime, OneWayToSourceprovidesContacts
BoxColliderCenterBinderVector3OneWay, OneTime, OneWayToSourceBoxCollider center
BoxColliderSizeBinderVector3OneWay, OneTime, OneWayToSourceBoxCollider size
SphereColliderCenterBinderVector3OneWay, OneTime, OneWayToSourceSphereCollider center
SphereColliderRadiusBinderfloatOneWay, OneTime, OneWayToSourceSphereCollider radius
CapsuleColliderCenterBinderVector3OneWay, OneTime, OneWayToSourceCapsuleCollider center
CapsuleColliderRadiusBinderfloatOneWay, OneTime, OneWayToSourceCapsuleCollider radius
MeshColliderConvexBinderboolOneWay, OneTime, OneWayToSourceMeshCollider.convex
MeshColliderMeshBinderMeshOneWay, OneTime, OneWayToSourceCollider mesh
MeshColliderCookingOptionsBinderMeshColliderCookingOptionsOneWay, OneTime, OneWayToSourceMeshCollider.cookingOptions
CapsuleColliderHeightBinderfloatOneWay, OneTime, OneWayToSourceCapsuleCollider height
CapsuleColliderDirectionBinderintOneWay, OneTime, OneWayToSourceCapsuleCollider axis (0..2)
ColliderContactOffsetBinderfloatOneWay, OneTime, OneWayToSourceCollider.contactOffset
ColliderIncludeLayersBinderintOneWay, OneTime, OneWayToSourceCollider.includeLayers
ColliderExcludeLayersBinderintOneWay, OneTime, OneWayToSourceCollider.excludeLayers

Collider2D

ComponentData typeModesDescription
Collider2DIsTriggerBinderboolOneWay, OneTime, OneWayToSourceCollider2D.isTrigger
Collider2DMaterialBinderPhysicsMaterial2DOneWay, OneTime, OneWayToSourceCollider2D.sharedMaterial
Collider2DOffsetBinderVector2OneWay, OneTime, OneWayToSourceCollider2D.offset
Collider2DDensityBinderfloatOneWay, OneTime, OneWayToSourceCollider2D.density
BoxCollider2DSizeBinderVector2OneWay, OneTime, OneWayToSourceBoxCollider2D size
CapsuleCollider2DSizeBinderVector2OneWay, OneTime, OneWayToSourceCapsuleCollider2D size
CircleCollider2DRadiusBinderfloatOneWay, OneTime, OneWayToSourceCircleCollider2D radius

Rigidbody

Binders for Rigidbody and Rigidbody2D.

ComponentData typeModesDescription
RigidbodyMassBinder / Rigidbody2DMassBinderint, float, long, doubleOneWay, OneTime, OneWayToSourcemass; a non-finite value is rejected
RigidbodyIsKinematicBinderboolOneWay, OneTime, OneWayToSourceRigidbody.isKinematic
RigidbodyUseGravityBinderboolOneWay, OneTime, OneWayToSourceRigidbody.useGravity
RigidbodyConstraintsBinderRigidbodyConstraintsOneWay, OneTime, OneWayToSourceRigidbody.constraints
Rigidbody2DBodyTypeBinderRigidbodyType2DOneWay, OneTime, OneWayToSourceRigidbody2D.bodyType
Rigidbody2DGravityScaleBinderint, float, long, doubleOneWay, OneTime, OneWayToSourceRigidbody2D.gravityScale
Rigidbody2DSimulatedBinderboolOneWay, OneTime, OneWayToSourceRigidbody2D.simulated

Aggregator / Conditional

Combining several bindings and choosing by condition; the result goes to a UnityEvent<T>.

ComponentData typeModesDescription
AndBoolMonoBinder / OrBoolMonoBinderinput boolAggregator: UnityEvent<bool> with the summary of all inputs
FormatStringMonoBinderinput stringAggregator: string.Format over the inputs
BoolAggregatorInputMonoBinder / StringAggregatorInputMonoBinderbool / stringOneWay, OneTimeAggregator input with an index
Conditional{Color, Float, String}MonoBinderboolOneWay, OneTimeOne of two values into a UnityEvent<T>

RateLimit / Tween

ComponentData typeModesDescription
Debounce{Float, String}MonoBinderfloat / stringOneWay, OneTimePasses the last value once the stream goes quiet
Throttle{Float, String}MonoBinderfloat / stringOneWay, OneTimeAt most one value per interval
Delay{Float, String}MonoBinderfloat / stringOneWay, OneTimeEvery value delayed, in order
Tween{Float, Vector3, Color}MonoBinderfloat / Vector3 / ColorOneWay, OneTimeSmooth transition to the new value through a UnityEvent<T>

UI Toolkit

The binders find the element in a UIDocument by name or USS class.

ComponentData typeModesDescription
ElementLabelTextMonoBinderanyOneWay, OneTimeLabel.text
ElementTextFieldValueMonoBinderstringallTextField text with feedback
ElementSliderValueMonoBinderint, float, long, doubleallSlider value with feedback
ElementButtonCommandMonoBinderIRelayCommandOneWay, OneTimeButton click
Element{Enabled, Display, Class}MonoBinderboolOneWay, OneTimeSetEnabled, display, USS class
ElementListViewItemsSourceMonoBinderIReadOnlyList<object>, observable/filteredOneWay, OneTimeListView source

UnityEvent

Binders that invoke a UnityEvent on value change. Details

ComponentData typeModesDescription
UnityEvent{Bool, Int, Long, Float, Double, String, Color, Vector2, Vector3, Quaternion}MonoBinderthe matching typeOneWay, OneTimeInvokes UnityEvent<T> with the value; the numeric and string ones accept every numeric type
UnityEventEnumMonoBinderEnumOneWay, OneTimeInvokes the UnityEvent mapped to the enum value
UnityEventSwitcherMonoBinderboolOneWay, OneTimeInvokes one of two UnityEvents
UnityEventNumberCondition(Switcher)MonoBinderfloatOneWay, OneTimeNumber → bool through a converter → UnityEvent<bool> or one of two events
UnityEventBoolByBindMonoBinderanyOneTimeUnityEvent<bool> with whether a binding exists

Collections

Binders for ViewModel collections. Details

ComponentData typeModesDescription
ViewModelObservableListBinderObservableList<IViewModel>OneWay, OneTimeDynamic list with a View factory
ViewModelCollectionBinderIReadOnlyList<IViewModel>OneWay, OneTimeStatic collection
ViewModelObservableDictionaryBinderObservableDict<K,IViewModel>OneWay, OneTimeDictionary with a View factory
VirtualizedListItemSourceBinderIReadOnlyList<IViewModel>OneWay, OneTimeData source for a VirtualizedList

Selectable

Binders for Selectable (the base of Button, Toggle, Slider and others).

ComponentData typeModesDescription
SelectableInteractableBinderboolOneWay, OneTime, OneWayToSourceinteractable
SelectableColorBlockBinderColorBlockOneWay, OneTime, OneWayToSourcecolors
SelectableColorBlockSwitcherBinderbool -> ColorBlockOneWay, OneTimeSwitches the color scheme
SelectableTransitionBinderSelectable.TransitionOneWay, OneTime, OneWayToSourcetransition
SelectableTargetGraphicBinderGraphicOneWay, OneTime, OneWayToSourcetargetGraphic
Selectable{Interactable, ColorBlock}Enum(Group)MonoBinderEnumOneWay, OneTimeValue by enum, for one Selectable or a group

Behaviour

Binders for Behaviour.

ComponentData typeModesDescription
BehaviourEnabledBinderboolOneWay, OneTime, OneWayToSourceBehaviour.enabled; an empty reference takes the first non-binder on the object
BehaviourEnabledByBindMonoBinderanyOneTimeBinder enabled while a binding exists
BehaviourEnabledEnum(Group)MonoBinderEnumOneWay, OneTimeenabled by enum, for one Behaviour or a group

Layout

Binders for layout components.

ComponentData typeModesDescription
LayoutGroupPaddingBinderRectOffset, intOneWay, OneTime, OneWayToSourcePadding; sides chosen through RectSides
LayoutGroupPaddingSwitcherBinderbool -> RectOffsetOneWay, OneTimeSwitches the padding
HorizontalOrVerticalLayoutGroupSpacingBinderint, float, long, doubleOneWay, OneTime, OneWayToSourceSpacing
HorizontalOrVerticalLayoutGroupSpacingSwitcherBinderbool -> floatOneWay, OneTimeSwitches the spacing
GridLayoutGroupCellSizeBinderVector2OneWay, OneTime, OneWayToSourcecellSize (not below zero)
GridLayoutGroupSpacingBinderVector2OneWay, OneTime, OneWayToSourcespacing
GridLayoutGroupConstraintBinderGridLayoutGroup.ConstraintOneWay, OneTime, OneWayToSourceconstraint
GridLayoutGroupConstraintCountBinderintOneWay, OneTime, OneWayToSourceconstraintCount
{LayoutGroup, HorizontalOrVerticalLayoutGroup}{…}Enum(Group)MonoBinderEnumOneWay, OneTimeValue by enum

Object

Binders for UnityEngine.Object.

ComponentData typeModesDescription
ObjectNameBinderstringOneWay, OneTime, OneWayToSourceObject.name

Caster

MonoBinder casters that convert types between binders.

ComponentConversionDescription
AnyToStringCasterMonoBinderany -> stringAny value to a string
ValueToStringCasterMonoBinder<T>T -> stringAbstract base of typed to-string conversion
TimeSpanToStringCasterMonoBinderTimeSpan -> stringFormats a TimeSpan as a string
StringToBoolCasterMonoBinderstring -> boolString to bool
StringToIntCasterMonoBinderstring -> intParses a string into an int
StringToFloatCasterMonoBinderstring -> floatParses a string into a float
StringToEnumCasterMonoBinder<TEnum>string -> TEnumAbstract base of string-to-enum parsing
Vector2ToVector3CasterMonoBinderVector2 -> Vector32D vector to 3D
Vector3ToVector2CasterMonoBinderVector3 -> Vector23D vector to 2D

Generic

Universal binders for arbitrary types.

ComponentModeDescription
DelegateOneWayBinder<T>OneWayUniversal OneWay binder over an Action<T>
DelegateOneTimeBinder<T>OneTimeUniversal OneTime binder over an Action<T>
DelegateOneWayToSourceBinder<T>OneWayToSourceUniversal OneWayToSource binder
DelegateTwoWayBinder<T>TwoWayUniversal TwoWay binder
CasterBinder<TFrom, TTo>OneWay, OneTimeUniversal type caster

Other UI components

ComponentData typeModesDescription
CanvasSortingOrderBinder / CanvasOverrideSortingBinderint / boolOneWay, OneTime, OneWayToSourceCanvas.sortingOrder, overrideSorting
CanvasScaler{UiScaleMode, ScaleFactor, ReferenceResolution, MatchWidthOrHeight}BinderScaleMode / float / Vector2 / floatOneWay, OneTime, OneWayToSourceCanvasScaler properties with Unity's constraints
ContentSizeFitter{HorizontalFit, VerticalFit}BinderContentSizeFitter.FitModeOneWay, OneTime, OneWayToSourceSize fit modes
AspectRatioFitter{AspectMode, AspectRatio}BinderAspectMode / floatOneWay, OneTime, OneWayToSourceAspect mode and ratio
LayoutElement{PreferredWidth, PreferredHeight, FlexibleWidth, FlexibleHeight}Binderint, float, long, doubleOneWay, OneTime, OneWayToSourceElement sizes; negative means "no preference"
LayoutElementIgnoreLayoutBinderboolOneWay, OneTime, OneWayToSourceignoreLayout
MaskShowMaskGraphicBinderboolOneWay, OneTime, OneWayToSourceMask.showMaskGraphic
RectMask2DPaddingBinderVector3OneWay, OneTime, OneWayToSourceRectMask2D.padding (left, bottom, right)
Shadow{EffectColor, EffectDistance}BinderColor / Vector2OneWay, OneTime, OneWayToSourceColor and offset of Shadow/Outline

ParticleSystem

ComponentData typeModesDescription
ParticleSystemEmissionEnabledBinderboolOneWay, OneTime, OneWayToSourceToggles emission without stopping the system
ParticleSystemEmissionRateBinderint, float, long, doubleOneWay, OneTime, OneWayToSourcerateOverTime multiplier, not below zero
ParticleSystemStartColorBinderColorOneWay, OneTime, OneWayToSourceColor of new particles
ParticleSystem{Play, Stop, Pause, Clear}MonoBinderAction, IRelayCommandOneWayToSourcePlayback operation as a command for the ViewModel

Scene and rendering

ComponentData typeModesDescription
Camera{BackgroundColor, FieldOfView, Orthographic, OrthographicSize}BinderColor / float / bool / floatOneWay, OneTime, OneWayToSourceCamera properties
Light{Color, Intensity, Range, SpotAngle}BinderColor / floatOneWay, OneTime, OneWayToSourceLight properties
VideoPlayer{Clip, IsLooping, PlaybackSpeed}BinderVideoClip / bool / floatOneWay, OneTime, OneWayToSourceClip, looping, speed (0..10)
NavMeshAgent{Speed, IsStopped}Binderfloat / boolOneWay, OneTime, OneWayToSourceAgent off the NavMesh: writing isStopped is logged and skipped

Global state

Binders without a target: static engine properties.

ComponentData typeModesDescription
TimeScaleBinderint, float, long, doubleOneWay, OneTime, OneWayToSourceTime.timeScale, not below zero
TargetFrameRateBinderintOneWay, OneTime, OneWayToSourceApplication.targetFrameRate, not below -1
QualityLevelBinderintOneWay, OneTime, OneWayToSourceQuality level, index limited to the project list
ScreenFullScreenBinderboolOneWay, OneTime, OneWayToSourceScreen.fullScreen
AudioListener{Volume, Pause}Binderfloat / boolOneWay, OneTime, OneWayToSourceGlobal volume and audio pause
AudioMixerFloatBinderint, float, long, doubleOneWay, OneTime, OneWayToSourceExposed AudioMixer parameter
AudioMixerSnapshotBinderint, stringOneWay, OneTimeTransition to a snapshot by index or name

Debug

Debugging utilities.

ComponentData typeModesDescription
DebugLogBinderanyallPrints the value to Debug.Log; Editor and development builds only

Localization

Binders for the Unity Localization integration.

ComponentData typeModesDescription
TextLocalizationEntryBinderLocalizedStringOneWay, OneTimeLocalized string on a TMP_Text
TextLocalizationEntrySwitcherBinderbool -> LocalizedStringOneWay, OneTimeSwitches the localized string
LocalizeStringEventEntryBinderstring (entry key)OneWay, OneTime, OneWayToSourceKey on a LocalizeStringEvent
LocalizeStringEventEntrySwitcherBinderbool -> stringOneWay, OneTimeSwitches the localization key
LocalizeStringEventVariableBindernumbers, bool, string, ObjectOneWay, OneTimeSmart String variable in a LocalizeStringEvent; created by value type