Skip to content
DEV505 / Sound ManagerDOCUMENTATION

DEV505 / START HERE

Waiting and repeating

Choose timers, one-time gates, or ongoing condition watchers.

These nodes store work for later service updates. A paused play freezes graph time. A timer is appropriate for pacing gameplay sounds; it is not a promise to fire on an exact audio sample or musical beat.

See it in a complete example: Launch clearance, countdown, and completion.

For the full list, open the node catalogue.

On Start passes through a 0.55-second Delay before thunder plays. The demo supplies the strike position when it starts this 3D event.
Weather in Unity: wait before the rumble. The graph nodes and their connections are visible.

On Start passes through a 0.55-second Delay before thunder plays. The demo supplies the strike position when it starts this 3D event.

Start begins watching Condition. When it changes from the remembered value to true, the node sends Started; when it changes to false, it sends Stopped. The Stop input ends the check.

Logic · orange headerColor key

Unity node · Track Condition.
Track Condition node in the Unity graph editor, showing its controls and ports

Unity node · Track Condition.

Ports on Track Condition
DirectionPortValue
InputStartExecution
InputStopExecution
InputConditionBool
OutputStartedExecution
OutputStoppedExecution

Set it up. Initial State is the remembered value before the first check; it defaults to false. Keep Tracking defaults to true and keeps a silent play alive while it watches. With this option off, a play with no other work may end before the condition changes.

Try it. Engine can start or stop a layer when RPM crosses a comparison threshold.

Stores a command and sends Out after Seconds of graph time. A non-positive duration forwards immediately. Pausing the play freezes its graph time.

Logic · orange headerColor key

Unity node · Delay.
Delay node in the Unity graph editor, showing its controls and ports

Unity node · Delay.

Ports on Delay
DirectionPortValue
InputInExecution
InputSecondsFloat
OutputOutExecution

Set it up. Seconds defaults to 1. Up to eight commands may wait on each Delay; further arrivals are dropped and traced. It runs on service updates, not at audio-sample precision.

Try it. Weather puts a delay between the visible lightning and the thunder sound.

Start begins a repeating timer. The first Out command comes after Interval seconds, not immediately. Stop ends the timer. The node reads Interval again each time the timer is due.

Logic · orange headerColor key

Unity node · Repeat.
Repeat node in the Unity graph editor, showing its controls and ports

Unity node · Repeat.

Ports on Repeat
DirectionPortValue
InputStartExecution
InputStopExecution
InputIntervalFloat
OutputOutExecution

Set it up. Interval defaults to 1 second; a non-positive starting interval does not arm it. At most one pulse runs per node per update, so a slow frame does not produce a burst of missed beats.

Try it. Workshop spaces tool actions according to Work Pace.

In checks Condition. True fires Out immediately; false waits until a later update sees true, then fires once and disarms. Further arrivals while waiting share the same wait.

Logic · orange headerColor key

Unity node · Wait For Condition.
Wait For Condition node in the Unity graph editor, showing its controls and ports

Unity node · Wait For Condition.

Ports on Wait For Condition
DirectionPortValue
InputInExecution
InputConditionBool
OutputOutExecution

Set it up. Condition defaults false. This is a one-time gate, not a continuous permission check. Because it can complete immediately, it cannot by itself make an execution cycle safe.

Try it. Launch waits for clearance before beginning its countdown.

Start enables this node. On each update, it sends Out if this play has no voices playing. Stop disables the check. Sounds from other plays do not affect it.

Logic · orange headerColor key

Unity node · Idle Loop.
Idle Loop node in the Unity graph editor, showing its controls and ports

Unity node · Idle Loop.

Ports on Idle Loop
DirectionPortValue
InputStartExecution
InputStopExecution
OutputOutExecution

Set it up. While enabled, Idle Loop keeps this play alive even when it is silent. It can send Out while another timer is waiting: it checks for voices, not for every kind of unfinished graph work.

Try it. Restart a background clip after silence; use Repeat when you need a fixed interval instead.

Continue with graph checks and debugging if a connection or event is refused.