Logo

Modules

Browse built-in properties and their code bindings

Overview

Modules define which property a clip animates. Choose one from Add Clip, or use the matching BindTo... extension in code. All listed extension methods are in the Evo.Tween namespace.

Each binding takes the target component and returns a TweenHandle. The value type in the tables is the type to pass to EvoTween.Create.


Transform

PropertyTypeBinding
World / local positionVector3BindToPosition, BindToLocalPosition
World / local rotationQuaternionBindToRotation, BindToLocalRotation
Local scaleVector3BindToScale

The Inspector's position and rotation modules expose a coordinate-space option. Rotation values in code use quaternions; use Quaternion.Euler(...) when starting from Euler angles.


UI

These bindings require the uGUI module assembly, Evo.Tween.Modules.UGUI.

TargetPropertyTypeBinding
RectTransformAnchored positionVector2BindToAnchoredPosition
RectTransformRelative slide offsetsVector2BindToSlide
RectTransformSize deltaVector2BindToSizeDelta
RectTransformLayout size multipliersVector2BindToLayoutSize
RectTransformPivot, anchorsVector2BindToPivot, BindToAnchorMin, BindToAnchorMax
RectTransformOffsetsVector2BindToOffsetMin, BindToOffsetMax
CanvasGroupAlphafloatBindToAlpha
CanvasGroupInteraction flagsboolBindToInteractable, BindToBlocksRaycasts, BindToIgnoreParentGroups
GraphicColor / alphaColor / floatBindToColor, BindToAlpha
ImageFill amountfloatBindToFillAmount
Slider, ScrollbarValuefloatBindToValue
ScrollRectNormalized positionVector2BindToNormalizedPosition
LayoutElementPreferred, minimum, flexible sizeVector2BindToPreferredSize, BindToMinimumSize, BindToFlexibleSize

Slide and Layout Size

Slide uses offsets from the anchored position captured when the clip begins. To enter from 40 units below its arranged position, use Start Offset (0, -40) and Target Offset (0, 0), with From Current off.

Layout Size uses multipliers of the resolved width and height. (1, 1) means the captured size; (1, 0) collapses the height. These values are multipliers, not pixel dimensions.

Let layout settle before playing either animation. They capture their origin or size once at the clip's start; a layout system that continues writing the same RectTransform can still override the tween. Animate a child visual or use a LayoutElement binding when appropriate.

An alpha tween only changes visibility. Set interaction and raycast flags separately if an invisible panel should stop receiving input. For an Image fill animation, configure the Image to display its fill amount.


TextMeshPro

These bindings target TMP_Text and use Evo.Tween.Modules.TMP.

PropertyTypeBinding
Color / alphaColor / floatBindToColor, BindToAlpha
Font sizefloatBindToFontSize
Character, word, line spacingfloatBindToCharacterSpacing, BindToWordSpacing, BindToLineSpacing
Visible character countintBindToMaxVisibleCharacters

For a typewriter effect, populate the text first, update its text information if needed, then animate the visible character count. Text generation and layout have their own costs beyond tween evaluation.


Audio

TargetPropertiesTypeBindings
AudioSourceVolume, pitchfloatBindToVolume, BindToPitch
AudioSourceStereo pan, spatial blend, reverb mixfloatBindToStereoPan, BindToSpatialBlend, BindToReverbZoneMix

These change AudioSource properties; they don't start audio playback. Play the AudioSource separately when needed.


Rendering

TargetPropertiesTypeBindings
CameraField of view, orthographic sizefloatBindToFieldOfView, BindToOrthographicSize
CameraBackground colorColorBindToBackgroundColor
LightColorColorBindToColor
LightIntensity, rangefloatBindToIntensity, BindToRange
LightSpot anglesfloatBindToSpotAngle, BindToInnerSpotAngle
LightShadows, temperature, bouncefloatBindToShadowStrength, BindToColorTemperature, BindToBounceIntensity
SpriteRendererColor / alphaColor / floatBindToColor, BindToAlpha
SpriteRendererSizeVector2BindToSize
RendererShader float / colorfloat / ColorBindToMaterialFloat, BindToMaterialColor
VolumeWeight, priority, blend distancefloatBindToWeight, BindToPriority, BindToBlendDistance

Volume bindings live in Evo.Tween.Modules.RenderPipelines and depend on Render Pipelines Core. Camera, light, sprite, and shader properties must also be meaningful for the target's current configuration.


Material Properties

Material bindings take a Renderer, a shader property name, and an optional material index:

TweenHandle handle = EvoTween.Create(0f, 1f, 0.5f)
    .BindToMaterialFloat(targetRenderer, "_Dissolve", materialIndex: 0);

Use a property that exists in your shader; _Dissolve is an example for a shader that exposes it. The bindings use material property blocks rather than accessing Renderer.material to create a material instance. Coordinate with any other scripts that write property blocks on the same renderer.


Physics

TargetPropertyTypeBinding
RigidbodyPosition / rotationVector3 / QuaternionBindToPosition, BindToRotation
RigidbodyLinear / angular velocityVector3BindToLinearVelocity, BindToAngularVelocity
Rigidbody2DPosition / rotationVector2 / floatBindToPosition, BindToRotation
Rigidbody2DLinear / angular velocityVector2 / floatBindToLinearVelocity, BindToAngularVelocity

Set Update Phase to Fixed Update for a Tween Animator physics state, or use .WithUpdatePhase(UpdatePhase.FixedUpdate) in code. Configure the body's physics behavior for the movement you want; tweening doesn't replace collision or force simulation.


Video

TargetPropertiesTypeBindings
VideoPlayerPlayback speed, time, camera alphafloatBindToPlaybackSpeed, BindToTime, BindToTargetCameraAlpha

Prepare and play the video separately. Seek and playback behavior depend on the video backend and source; a time tween isn't a guarantee of frame-perfect video scrubbing.


Evo UI

Procedural Shape modules cover fill, pattern, outline, corners, clipping, shape parameters, and shadows. They require Evo UI and Evo.Tween.Modules.EvoUI. See Evo UI for the integration workflow and binding names.


Custom Modules

Add a module when your component exposes a property that isn't covered here. It can appear in the same clip menu and use the same timing and preview workflow. See For Developers.


On this page