Special Nodes
These are "Special" nodes. This includes flow control and special Udon features.
Block
Splits flow into multiple sections. One flow input, multiple flow output. Executes all right-side flow slots from top to bottom.
Branch
Inputs: Bool
- System.Boolean
Branches execution based on a conditional evaluation. If Bool
is True, True
flow path is executed. If Bool
is False, False
flow path is executed.
Comment
Provides a space for the user to type a comment string. This string is not included during compilation.
Const Null
Provides a "null" value for nullchecking purposes.
Const This
Provides a reference to the GameObject that the UdonBehavior is a component of.
Event Custom
Inputs: name
- System.String
Recieves a custom event. Custom event name must be typed, cannot be provided via node input.
For
Inputs: start
, end
, step
- System.Int32
Outputs: index
- System.Int32
Executes flow by using a counter. A counter is initalized with the value of start
. The Body
flow is executed, and then the counter is incremented by the step
value. This continues until the counter's value is greater than end
. Once that has occured, flow continues along on the Exit
flow.
Get Variable
Inputs: name
- System.String
Outputs: System.Object
Gets the Udon variable named name
and provides it as output.
Set Variable
Inputs: name
- System.String
value
- System.Object
sendChange
- Boolean
Sets the Udon variable named name
to value
when flow is executed. If sendChange
is checked, it will also trigger the OnVariableChanged event for that variable.
Get Program Variable
Inputs: instance
- UdonBehaviour
symbolName
- string
Get the value of an Udon variable symbolName
from another UdonBehaviour instance
. Works best if the target UdonBehaviour is a public variable and it's wired up in the Inspector, which allows you to choose the target variable name from a dropdown. If there's no UdonBehaviour connected to instance, it will use the current UdonBehaviour's variable names. If you instead know the name of the variable and want to set it directly, use a String const
node to write it in by hand.
Set Program Variable
Inputs: instance
- UdonBehaviour
symbolName
- string
value
- Object
Sets the value of an Udon variable symbolName
on another UdonBehaviour instance
to value
. Works best if the target UdonBehaviour is a public variable and it's wired up in the Inspector, which allows you to choose the target variable name from a dropdown. If there's no UdonBehaviour connected to instance, it will use the current UdonBehaviour's variable names. If you instead know the name of the variable and want to set it directly, use a String const
node to write it in by hand. This node will also trigger the OnVariableChanged event for the target variable.
On Variable Changed
Outputs: newValue
oldValue
Triggers whenever SetProgramVariable is called on the target variable, or when Set Variable is called with sendChange
checked. Works for synced variables, too!
While
Inputs: Bool
- System.Boolean
Executes the flow of Body
while Bool
is true. If Bool
is false, executes Exit
flow.
UdonBehaviour Nodes
UdonBehaviours have a few special nodes:
SendCustomEvent
Inputs: instance
- UdonBehaviour
, eventName
- String Runs the event 'eventName' on the target UdonBehaviour. If instance is left blank, it points to one of its own events.
SendCustomEventDelayedFrames
Inputs: instance
- UdonBehaviour
, eventName
- String, delayFrames
- int, eventTiming
- EventTiming Runs the event 'eventName' on the target UdonBehaviour, after waiting for delayFrames
. It will run the event during Update or LateUpdate, depending on which eventTiming
is selected. Minimum of 1 frame delay.
Note that Unity's frames count is based on the Update event. If you call SendCustomEventDelayedFrames before the Update event, such as Start or an Input event, the delay may be 1 frame shorter than expected.
SendCustomEventDelayedSeconds
Inputs: instance
- UdonBehaviour
, eventName
- String, delaySeconds
- float, eventTiming
- EventTiming Runs the event 'eventName' on the target UdonBehaviour, after waiting for delaySeconds
. It will run the event during Update or LateUpdate, depending on which eventTiming
is selected.
SendCustomNetworkEvent
Inputs: instance
- UdonBehaviour
, target
- NetworkEventTarget, eventName
- String Runs the event 'eventName' on the target UdonBehaviour - either on the Owner of the target if 'Owner' is selected as the target, or on Everyone in the instance if 'all' is selected.