Skip to main content

DoTweenAnimEvent

Important Attention Reminder

Coding Style wiki


DoTweenAnimEvent is the tween animation group player of TweenSystem. It plays multiple DoTweenAnims together in Parallel or Sequence mode, providing forward (PlayNormal), backward (PlayReverse), and trigger toggle (PlayTrigger) play methods with end callbacks (endCallback). Add it via Add Component/OxGKit/TweenSystem/DoTweenAnimEvent.

NamespaceOxGKit.TweenSystem
Typepublic class DoTweenAnimEvent : MonoBehaviour
SourceDoTweenAnimEvent.cs
using OxGKit.TweenSystem;

Important DoTweenAnimEvent only plays at runtime; it does not support editor preview (Preview Mode only supports DoTweenAnim, refer to the Module Intro).

Quick Start

using DG.Tweening;
using OxGKit.TweenSystem;
using UnityEngine;

public class PanelController : MonoBehaviour
{
// Configure the Do Tween Anims list in the Inspector (DriveMode set to Event)
[SerializeField]
private DoTweenAnimEvent _panelAnim;

// Open panel (plays forward)
public void OpenPanel()
{
this._panelAnim.PlayNormal(() => Debug.Log("Panel opened"));
}

// Close panel (plays backward)
public void ClosePanel()
{
this._panelAnim.PlayReverse(() => this.gameObject.SetActive(false));
}
}

General Rules

PlayMode

public enum PlayMode
{
Parallel, // Parallel playback (all at once)
Sequence // Sequential playback (one by one in list order)
}
  • Parallel: all DoTweenAnims in the list play at the same time; the endCallback fires after the longest duration finishes.
  • Sequence: plays one by one in list order; each DoTweenAnim finishes (measured by its longest track duration) before the next one starts, and the endCallback fires after all of them finish.

Trigger Direction (trigger)

  • trigger = true plays forward (normal); trigger = false plays backward (reverse).
  • Each DoTweenAnim plays forward or backward according to its own tracks' playMode (see DoTweenAnim).

Attention The DoTweenAnims in the list should have their DriveMode set to Event (Active mode replays automatically on activation, do not mix them); also, every DoTweenAnim must have at least one tween track enabled, otherwise a NullReferenceException occurs when computing the group duration.


Members

MemberDescription
public PlayMode playModeGroup play mode (default Parallel), Inspector: Play Mode.
public List<DoTweenAnim> doTweenAnimsThe controlled DoTweenAnim list, Inspector: Do Tween Anims.

Play Control

Overview

MethodDescription
PlayNormalPlays forward.
PlayReversePlays backward.
PlayTriggerTrigger playback (auto-flip or explicit direction).
PlayTriggerOncePlays only once when the trigger direction changes.
ResetTriggerResets the trigger flag.
KillKills the current group play sequence.

PlayNormal

public void PlayNormal()

public void PlayNormal(TweenCallback endCallback = null)

Plays forward (trigger = true) all DoTweenAnims in the list; the endCallback fires after all of them finish playing.

this._panelAnim.PlayNormal(() => Debug.Log("All tweens ended"));

PlayReverse

public void PlayReverse()

public void PlayReverse(TweenCallback endCallback = null)

Plays backward (trigger = false) all DoTweenAnims in the list; the endCallback fires after all of them finish playing.

this._panelAnim.PlayReverse(() => this.gameObject.SetActive(false));

PlayTrigger

public void PlayTrigger()

public void PlayTrigger(TweenCallback endCallback = null)

public void PlayTrigger(bool trigger, TweenCallback endCallback = null)

Trigger playback: the overloads without a trigger parameter automatically record and flip the trigger flag (direction alternates on each call); the overload with an explicit trigger plays according to the parameter (true = forward, false = backward).

// Alternates direction on each call (open -> close -> open...)
this._panelAnim.PlayTrigger();

// Explicit direction + end callback
this._panelAnim.PlayTrigger(true, () => Debug.Log("Played normally"));

PlayTriggerOnce

public void PlayTriggerOnce(bool trigger)

public void PlayTriggerOnce(bool trigger, TweenCallback endCallback = null)

Plays only when the trigger differs from the last recorded state (true = forward, false = backward), preventing replays of the same state; ideal for Toggle-style UI.

// Play on toggle change (no replay for the same state)
toggle.onValueChanged.AddListener((isOn) =>
{
toggle.GetComponent<DoTweenAnimEvent>().PlayTriggerOnce
(
isOn,
() => Debug.Log("Toggle tween finished")
);
});

ResetTrigger

public void ResetTrigger()

Resets the trigger flag (back to false), affecting the flip starting point of PlayTrigger and the state comparison of PlayTriggerOnce.

Kill

public void Kill()

Kills the current group play sequence (each play method also kills the previous sequence automatically before playing again).

Reminder Call Kill() before a UI object is destroyed or recycled to prevent the endCallback from being invoked on a destroyed object.


List Management

Overview

MethodDescription
SetPlayModeSets the group play mode.
AddDoTweenAnimDynamically adds one or more DoTweenAnims (chainable).
RemoveDoTweenAnimRemoves a specific DoTweenAnim.
ClearDoTweenAnimsClears the list.

SetPlayMode

public void SetPlayMode(PlayMode playMode)

Sets the group play mode (Parallel / Sequence).

AddDoTweenAnim

public DoTweenAnimEvent AddDoTweenAnim(params DoTweenAnim[] doTweenAnims)

Dynamically adds one or more DoTweenAnims to the list; returns itself for chained calls.

animEvent
.AddDoTweenAnim(anim1, anim2)
.PlayNormal(() => Debug.Log("Played"));

RemoveDoTweenAnim

public void RemoveDoTweenAnim(DoTweenAnim doTweenAnim)

Removes a specific DoTweenAnim from the list.

ClearDoTweenAnims

public void ClearDoTweenAnims()

Clears the entire DoTweenAnim list.