Back to API Reference
Struct

Playback

sealed

Allocation-free weight envelope of one animated application: instant and eased transitions, pulses, deferred release, and clock routing. Pure state machine — the host interprets every decision through IPlaybackHost, so the same envelope serves any output kind.

public float Weight{ get }

Current envelope weight, 0..1.

public bool Transitioning{ get }

Whether a timed transition is in flight.

public PlaybackClock Clock{ get }

Clock the in-flight work advances on.

public bool NeedsTick{ get }

Whether the envelope has pending work needing ticks on any clock.

public bool UsesFrameClock{ get }

Whether pending work advances on a frame clock (scaled or unscaled).

public bool UsesManualClock{ get }

Whether pending work advances only through manual ticks.

public void SetWeight()

Sets the weight immediately, cancelling nothing.

public void TransitionTo()

Starts a timed transition toward target; zero duration applies it immediately. A releasing run releases the host's outputs on completing at zero weight.

public void TriggerPulse()

Runs the enter half of a pulse; the exit half starts when the enter completes.

public void HoldOneFrame()

Applies full weight for exactly one tick of the current clock, then releases.

public void CompleteForReducedMotion()

Snaps in-flight work to its end state, honoring a reduced-motion preference.

public bool Tick()

Advances pending work by deltaTime on clock. Returns whether the envelope still needs ticks.

public void Reset()

Drops all pending work and returns the weight to zero without applying it.