CurveTween

Features

Fade

Animates the object's transparency (Alpha).

• Supported Components
• Example

Move

Animates the position of a Transform.

• Example

Scale

Animates the scale of a Transform.

• Example

Rotate

Animates the rotation of a Transform.

• Example

Color

Animates color values.

• Supported Components
• Example

Text(UI Text/TextMeshPro)

Creates a typewriter-style text animation.

• Example

RichText (TextMeshPro)

Supports rich text, typing-style animations, rotation animations, and font-size scaling animations.(Be aware that it has high GC overhead, which may impact performance.)

• Example

Light

Animates various properties of a Unity Light component.

• Supported Properties
• Example

FillAmount

A feature that animates the Image component's fillAmount value. Useful for gauges, cooldowns, circular loaders, and other UI expressions.

• Target
• Example

IntInterpolate / FloatInterpolate

A feature that animates numeric values in Text / TextMeshPro by interpolating them. Ideal for count-ups, damage numbers, score animations, and more.

• Target
• Example

TMPMeshExplodeInAnimation

An animation that directly manipulates TextMeshPro vertex data to make each character explode individually. You can finely control speed, direction, spread, randomness, and more, making it suitable for flashy effects.

• Target
• Example
• Example

TMPMeshRevealAnimation

An animation that directly manipulates TextMeshPro vertices to create the following complex character effects: Fade (alpha), Character Scale, Rotate, Move, Wave deformation, Bounce deformation. It supports everything from typewriter-style reveals to highly dynamic and expressive text animations.

• Target
• Example
• Example

PathCurveAnimation

Moves a target object along a curve (path) composed of multiple points.

• Example

API Reference

DoCanvasFade

This utility method animates the alpha value of a CanvasGroup.

ITweenPlayer DoCanvasFade(this GameObject target, float forwardValue = 0, bool blocksraycasts = false, float duration = 1);

ITweenPlayer DoCanvasFade(this GameObject target, AnimationCurve curve, float forwardValue = 0, bool blocksraycasts = false);

ITweenPlayer DoCanvasFade(this MonoBehaviour target, float forwardValue = 0, bool blocksraycasts = false, float duration = 1);

ITweenPlayer DoCanvasFade(this MonoBehaviour target, AnimationCurve curve, float forwardValue = 0, bool blocksraycasts = false);

ITweenPlayer DoCanvasFade(this CanvasGroup target, float forwardValue = 0, bool blocksraycasts = false, float duration = 1);

ITweenPlayer DoCanvasFade(this CanvasGroup target, AnimationCurve curve, float forwardValue = 0, bool blocksraycasts = false);

• Parameters

DoFade

This utility method animates the alpha value of the target object.

ITweenPlayer DoFade(this Material target, float forwardValue = 0, float duration = 1);

ITweenPlayer DoFade(this Renderer target, float forwardValue = 0, float duration = 1);

ITweenPlayer DoFade(this Graphic target, float forwardValue = 0, float duration = 1);

ITweenPlayer DoFade(this Renderer target, AnimationCurve curve, float forwardValue = 0);

ITweenPlayer DoFade(this Graphic target, AnimationCurve curve, float forwardValue = 0);

ITweenPlayer DoFade(this Material target, AnimationCurve curve, float forwardValue = 0);

• Parameters

DoColor

This utility method animates the Color of the target object.

ITweenPlayer DoColor(this Graphic target, Color forwardValue, float duration = 1);

ITweenPlayer DoColor(this Graphic target, Color forwardValue, AnimationCurve curve);

ITweenPlayer DoColor(this Renderer target, Color forwardValue, float duration = 1);

ITweenPlayer DoColor(this Renderer target, Color forwardValue, AnimationCurve curve);

ITweenPlayer DoColor(this Material target, Color forwardValue, float duration = 1);

ITweenPlayer DoColor(this Material target, Color forwardValue, AnimationCurve curve);

• Parameters

DoFillAmount

DoFillAmount is an extension method that smoothly animates the fillAmount of a UnityEngine.UI.Image.

ITweenPlayer DoFillAmount(this Image target, float forwardValue = 0, float duration = 1);

ITweenPlayer DoFillAmount(this Image target, AnimationCurve curve, float forwardValue = 0);

• Parameters

DoLight / DoIntensity / DoRange

Utility methods for animating the color, intensity, and range of a Light component.

ITweenPlayer DoColor(this Light target, Color color, float duration = 1);

ITweenPlayer DoColor(this Light target, Color color, AnimationCurve curve);

ITweenPlayer DoIntensity(this Light target, float intensity, float duration = 1);

ITweenPlayer DoIntensity(this Light target, float intensity, AnimationCurve curve);

ITweenPlayer DoRange(this Light target, float range, float duration = 1);

ITweenPlayer DoRange(this Light target, float range, AnimationCurve curve);

ITweenPlayer DoLight(this Light target, bool colortween = false, Color color = default, bool intensitytween = false, float intensity = 0, bool rangetween = false, float range = 0, float duration = 1);

ITweenPlayer DoLight(this Light target, AnimationCurve curve, bool colortween = false, Color color = default, bool intensitytween = false, float intensity = 0, bool rangetween = false, float range = 0);

• Parameters

DoInterpolate

Utility methods for animating numeric values in Text / TextMeshPro by interpolating them.

ITweenPlayer DoInterpolate(this Text target, int forwardValue, float duration = 1);

ITweenPlayer DoInterpolate(this Text target, int forwardValue, AnimationCurve curve);

ITweenPlayer DoInterpolate(this Text target, float forwardValue, float duration = 1);

ITweenPlayer DoInterpolate(this Text target, float forwardValue, AnimationCurve curve);

ITweenPlayer DoInterpolate(this TMP_Text target, float forwardValue, float duration = 1);

ITweenPlayer DoInterpolate(this TMP_Text target, float forwardValue, AnimationCurve curve);

ITweenPlayer DoInterpolate(this TMP_Text target, int forwardValue, float duration = 1);

ITweenPlayer DoInterpolate(this TMP_Text target, int forwardValue, AnimationCurve curve);

• Parameters

DoMove / DoMove(X/Y/Z)

Utility methods for animating the movement of a target object.

ITweenPlayer DoMoveX(this GameObject target, float x, float duration = 1);

ITweenPlayer DoMoveX(this GameObject target, float x, AnimationCurve curve);

ITweenPlayer DoMoveY(this GameObject target, float y, float duration = 1);

ITweenPlayer DoMoveY(this GameObject target, float y, AnimationCurve curve);

ITweenPlayer DoMoveZ(this GameObject target, float z, float duration = 1);

ITweenPlayer DoMoveZ(this GameObject target, float z, AnimationCurve curve);

ITweenPlayer DoMove(this GameObject target, Vector3 forwardValue, float duration = 1, bool relative = false);

ITweenPlayer DoMove(this GameObject target, Vector3 forwardValue, AnimationCurve curve, bool relative = false);

ITweenPlayer DoMoveX<T>(this T target, float x, float duration = 1) where T : Component;

ITweenPlayer DoMoveX<T>(this T target, float x, AnimationCurve curve) where T : Component;

ITweenPlayer DoMoveY<T>(this T target, float y, float duration = 1) where T : Component;

ITweenPlayer DoMoveY<T>(this T target, float y, AnimationCurve curve) where T : Component;

ITweenPlayer DoMoveZ<T>(this T target, float z, float duration = 1) where T : Component;

ITweenPlayer DoMoveZ<T>(this T target, float z, AnimationCurve curve) where T : Component;

ITweenPlayer DoMove<T>(this T target, Vector3 forwardValue, float duration = 1, bool relative = false) where T : Component;

ITweenPlayer DoMove<T>(this T target, Vector3 forwardValue, AnimationCurve curve, bool relative = false) where T : Component;

• Parameters

DoRotation / DoRotation(X/Y/Z)

Utility methods for animating the rotation of a target object.

ITweenPlayer DoRotationX(this GameObject target, float x, float duration = 1);

ITweenPlayer DoRotationX(this GameObject target, float x, AnimationCurve curve);

ITweenPlayer DoRotationY(this GameObject target, float y, float duration = 1);

ITweenPlayer DoRotationY(this GameObject target, float y, AnimationCurve curve);

ITweenPlayer DoRotationZ(this GameObject target, float z, float duration = 1);

ITweenPlayer DoRotationZ(this GameObject target, float z, AnimationCurve curve);

ITweenPlayer DoRotation(this GameObject target, Vector3 forwardValue, float duration = 1, bool relative = false);

ITweenPlayer DoRotation(this GameObject target, Vector3 forwardValue, AnimationCurve curve, bool relative = false);

ITweenPlayer DoRotationX<T>(this T target, float x, float duration = 1) where T : Component;

ITweenPlayer DoRotationX<T>(this T target, float x, AnimationCurve curve) where T : Component;

ITweenPlayer DoRotationY<T>(this T target, float y, float duration = 1) where T : Component;

ITweenPlayer DoRotationY<T>(this T target, float y, AnimationCurve curve) where T : Component;

ITweenPlayer DoRotationZ<T>(this T target, float z, float duration = 1) where T : Component;

ITweenPlayer DoRotationZ<T>(this T target, float z, AnimationCurve curve) where T : Component;

ITweenPlayer DoRotation<T>(this T target, Vector3 forwardValue, float duration = 1, bool relative = false) where T : Component;

ITweenPlayer DoRotation<T>(this T target, Vector3 forwardValue, AnimationCurve curve, bool relative = false) where T : Component;

• Parameters

DoScale / DoScale(X/Y/Z)

Utility methods for animating the scaling of a target object.

ITweenPlayer DoScaleX(this GameObject target, float x, float duration = 1);

ITweenPlayer DoScaleX(this GameObject target, float x, AnimationCurve curve);

ITweenPlayer DoScaleY(this GameObject target, float y, float duration = 1);

ITweenPlayer DoScaleY(this GameObject target, float y, AnimationCurve curve);

ITweenPlayer DoScaleZ(this GameObject target, float z, float duration = 1);

ITweenPlayer DoScaleZ(this GameObject target, float z, AnimationCurve curve);

ITweenPlayer DoScale(this GameObject target, Vector3 forwardValue, float duration = 1, bool relative = false);

ITweenPlayer DoScale(this GameObject target, Vector3 forwardValue, AnimationCurve curve, bool relative = false);

ITweenPlayer DoScaleX<T>(this T target, float x, float duration = 1) where T : Component;

ITweenPlayer DoScaleX<T>(this T target, float x, AnimationCurve curve) where T : Component;

ITweenPlayer DoScaleY<T>(this T target, float y, float duration = 1) where T : Component;

ITweenPlayer DoScaleY<T>(this T target, float y, AnimationCurve curve) where T : Component;

ITweenPlayer DoScaleZ<T>(this T target, float z, float duration = 1) where T : Component;

ITweenPlayer DoScaleZ<T>(this T target, float z, AnimationCurve curve) where T : Component;

ITweenPlayer DoScale<T>(this T target, Vector3 forwardValue, float duration = 1, bool relative = false) where T : Component;

ITweenPlayer DoScale<T>(this T target, Vector3 forwardValue, AnimationCurve curve, bool relative = false) where T : Component;

• Parameters

DoReveal

Utility methods for performing a typewriter-style animation that reveals text one character at a time.

ITweenPlayer DoReveal(this Text target, string text = null, float duration = 1);

ITweenPlayer DoReveal(this Text target, AnimationCurve curve, string text = null);

ITweenPlayer DoReveal(this TMP_Text target, string text = null, float duration = 1);

ITweenPlayer DoReveal(this TMP_Text target, AnimationCurve curve, string text = null);

• Parameters

DoRichTextReveal

A utility method that performs a typewriter-style animation with Rich Text support.

IRichTextPlayer DoRichTextReveal(this TMP_Text target, string text = null, float duration = 1);

IRichTextPlayer DoRichTextReveal(this TMP_Text target, AnimationCurve curve, string text = null);

• Parameters

DoRichTextRotateTween

Supports Rich Text and performs rotation animation on individual TextMeshPro characters.

IRichTextPlayer DoRichTextRotateTween(this TMP_Text target, float rotate, string text = null, float duration = 1);

IRichTextPlayer DoRichTextRotateTween(this TMP_Text target, AnimationCurve curve, float rotate, string text = null);

• Parameters

DoRichTextSizeTween

A feature that animates the font size of TextMeshPro text.

IRichTextPlayer DoRichTextSizeTween(this TMP_Text target, float fontsize, string text = null, float duration = 1);

IRichTextPlayer DoRichTextSizeTween(this TMP_Text target, AnimationCurve curve, float fontsize, string text = null);

• Parameters

DoRichTextTween

A composite text animation feature that supports Rich Text and can simultaneously perform typewriter animation, rotation, and font size changes.

IRichTextPlayer DoRichTextTween(this TMP_Text target, bool reveal = true, string text = null, bool sizetween = false, float fontsize = 0, bool rotatetween = false, float rotate = 0, float duration = 1);

IRichTextPlayer DoRichTextTween(this TMP_Text target, AnimationCurve curve, bool reveal = true, string text = null, bool sizetween = false, float fontsize = 0, bool rotatetween = false, float rotate = 0);

• Parameters

DoMeshExplodeIn

A utility method that directly manipulates TextMeshPro vertex data to generate an animation where each character “explodes” outward individually.

IExplodeInPlayer DoMeshExplodeIn(this TMP_Text target, string text = null, float explosionPower = 200, bool fadeOut = true, float fadedelay = 0, bool rotate = true, float rotateMin = 50, float rotateMax = 500, bool useFloatiness = true, float factorMin = 0.02F, float factorMax = 0.15F, float duration = 1);

IExplodeInPlayer DoMeshExplodeIn(this TMP_Text target, AnimationCurve curve, string text = null, float explosionPower = 200, bool fadeOut = true, float fadedelay = 0, bool rotate = true, float rotateMin = 50, float rotateMax = 500, bool useFloatiness = true, float factorMin = 0.02F, float factorMax = 0.15F);

• Parameters

DoMeshExplodeInFadeOut

A utility method that directly manipulates TextMeshPro vertex data to explode characters as independent meshes while simultaneously fading them out.

IExplodeInPlayer DoMeshExplodeInFadeOut(this TMP_Text target, string text = null, float explosionPower = 200, float delay = 0, float duration = 1);

IExplodeInPlayer DoMeshExplodeInFadeOut(this TMP_Text target, AnimationCurve curve, string text = null, float explosionPower = 200, float delay = 0);

• Parameters

DoMeshExplodeInFloatinessFadeOut

A utility method that directly manipulates TextMeshPro vertex data to scatter characters outward while giving them a floating motion and fading them out simultaneously.

IExplodeInPlayer DoMeshExplodeInFloatinessFadeOut(this TMP_Text target, string text = null, float explosionPower = 200, float fadedelay = 0, float factorMin = 0.02F, float factorMax = 0.15F, float duration = 1);

IExplodeInPlayer DoMeshExplodeInFloatinessFadeOut(this TMP_Text target, AnimationCurve curve, string text = null, float explosionPower = 200, float fadedelay = 0, float factorMin = 0.02F, float factorMax = 0.15F);

• Parameters

DoMeshExplodeInRotateFadeOut

A utility method that directly manipulates TextMeshPro vertex data to rotate characters individually, scatter them explosively, and fade them out.

IExplodeInPlayer DoMeshExplodeInRotateFadeOut(this TMP_Text target, string text = null, float explosionPower = 200, float fadedelay = 0, float rotateMin = 50, float rotateMax = 500, float duration = 1);

IExplodeInPlayer DoMeshExplodeInRotateFadeOut(this TMP_Text target, AnimationCurve curve, string text = null, float explosionPower = 200, float fadedelay = 0, float rotateMin = 50, float rotateMax = 500);

• Parameters

DoMeshReveal

A utility method that directly manipulates TextMeshPro vertices to create complex character animations such as Fade / Scale / Move / Rotate / Wave / Bounce.

IRevealPlayer DoMeshReveal(this TMP_Text target, bool reveal = true, string text = null, bool fadetween = false, float alpha = 1, bool postween = false, Vector3 distance = default, bool scaletween = false, float scale = 1, bool rotatetween = false, Vector3 rotate = default, WaveType wavetype = WaveType.None, float frequency = 0, float duration = 1);

IRevealPlayer DoMeshReveal(this TMP_Text target, AnimationCurve curve, bool reveal = true, string text = null, bool fadetween = false, float alpha = 1, bool postween = false, Vector3 distance = default, bool scaletween = false, float scale = 1, bool rotatetween = false, Vector3 rotate = default, WaveType wavetype = WaveType.None, float frequency = 0);

• Parameters

DoMeshFadeReveal

A utility method that directly manipulates TextMeshPro vertices to perform composite text effects centered around Fade + Reveal.

IRevealPlayer DoMeshFadeReveal(this TMP_Text target, float alpha = 0, bool reveal = true, string text = null, float duration = 1);

IRevealPlayer DoMeshFadeReveal(this TMP_Text target, AnimationCurve curve, float alpha = 0, bool reveal = true, string text = null);

• Parameters

DoMeshMoveReveal / DoMeshMove(X/Y/Z)Reveal

Utility methods that directly manipulate TextMeshPro vertices to create animations combining Move (translation) + Reveal, with optional Wave / Bounce effects.

IRevealPlayer DoMeshMoveReveal(this TMP_Text target, Vector3 distance, WaveType wavetype = WaveType.None, float frequency = 0, bool reveal = true, string text = null, float duration = 1);

IRevealPlayer DoMeshMoveReveal(this TMP_Text target, Vector3 distance, AnimationCurve curve, WaveType wavetype = WaveType.None, float frequency = 0, bool reveal = true, string text = null);

IRevealPlayer DoMeshMoveXReveal(this TMP_Text target, float x, WaveType wavetype = WaveType.None, float frequency = 0, bool reveal = true, string text = null, float duration = 1);

IRevealPlayer DoMeshMoveXReveal(this TMP_Text target, float x, AnimationCurve curve, WaveType wavetype = WaveType.None, float frequency = 0, bool reveal = true, string text = null);

IRevealPlayer DoMeshMoveYReveal(this TMP_Text target, float y, WaveType wavetype = WaveType.None, float frequency = 0, bool reveal = true, string text = null, float duration = 1);

IRevealPlayer DoMeshMoveYReveal(this TMP_Text target, float y, AnimationCurve curve, WaveType wavetype = WaveType.None, float frequency = 0, bool reveal = true, string text = null);

IRevealPlayer DoMeshMoveZReveal(this TMP_Text target, float z, WaveType wavetype = WaveType.None, float frequency = 0, bool reveal = true, string text = null, float duration = 1);

IRevealPlayer DoMeshMoveZReveal(this TMP_Text target, float z, AnimationCurve curve, WaveType wavetype = WaveType.None, float frequency = 0, bool reveal = true, string text = null);

• Parameters

DoMeshRotateReveal / DoMeshRotate(X/Y/Z)Reveal

Utility methods that directly manipulate TextMeshPro vertices to create animations combining Rotate + Reveal.

IRevealPlayer DoMeshRotateReveal(this TMP_Text target, Vector3 rotate, bool reveal = true, string text = null, float duration = 1);

IRevealPlayer DoMeshRotateReveal(this TMP_Text target, Vector3 rotate, AnimationCurve curve, bool reveal = true, string text = null);

IRevealPlayer DoMeshRotateXReveal(this TMP_Text target, float x, bool reveal = true, string text = null, float duration = 1);

IRevealPlayer DoMeshRotateXReveal(this TMP_Text target, float x, AnimationCurve curve, bool reveal = true, string text = null);

IRevealPlayer DoMeshRotateYReveal(this TMP_Text target, float y, AnimationCurve curve, bool reveal = true, string text = null);

IRevealPlayer DoMeshRotateYReveal(this TMP_Text target, float y, bool reveal = true, string text = null, float duration = 1);

IRevealPlayer DoMeshRotateZReveal(this TMP_Text target, float z, bool reveal = true, string text = null, float duration = 1);

IRevealPlayer DoMeshRotateZReveal(this TMP_Text target, float z, AnimationCurve curve, bool reveal = true, string text = null);

• Parameters

DoMeshScaleReveal

Utility methods that directly manipulate TextMeshPro vertices to create animations combining Scale + Reveal.

IRevealPlayer DoMeshScaleReveal(this TMP_Text target, AnimationCurve curve, float scale = 0, bool reveal = true, string text = null);

IRevealPlayer DoMeshScaleReveal(this TMP_Text target, float scale = 0, bool reveal = true, string text = null, float duration = 1);

• Parameters

Path Settings

Animation system for moving objects along a multi-point curve (path).

IPathPlayer SetClosed(bool closed);

• Parameters

IPathPlayer SetLookMode(PathLookMode lookmode);

• Parameters

IPathPlayer SetPoints(List vectors);

IPathPlayer SetTarget(Transform target);

IPathPlayer SetUseLocalPosition(bool uselocal);

• Parameters

IPathPlayer SnapTargetToFirstPoint();

CurveTween Settings

iTweenPlayer SetDelay(float delay);

iTweenPlayer SetDuration(float duration);

iTweenPlayer SetEase(EaseType easeType);

iTweenPlayer SetLoop(bool loop);

iTweenPlayer SetLoopCount(int loopCount);

iTweenPlayer SetLoopDelay(bool loopDelay);

iTweenPlayer SetLoopType(LoopType loopType);

• Parameters

iTweenPlayer SetScaledTime(bool scaledtime);

iTweenPlayer SetYoYoDelay(float yoYoDelay);

ITweenPlayerSetValue(object value);

Play / Stop

void Play();

void Play(bool reversePlay);

• Parameters

void PlayOnce();

void PlayReverseOnce();

void Stop();

void ForceEnd(bool invokeCallback);

• Parameters

void StopAndReset();

Event Callbacks

iTweenPlayer AddOnStartListener(UnityAction call);

iTweenPlayer AddOnYoYoListener(UnityAction call);

iTweenPlayer AddOnCompleteListener(UnityAction call);

GetAnimationCurve

Generates a Keyframe curve based on EaseType.

Keyframe[] CurveTweenUtility.GetAnimationCurve(EaseType easeType);