特殊节点
"特殊"类别包含用于自定义变量、自定义事件、流程控制和与其他 UdonBehaviour 通信的节点。
Block(块)
将流程拆分为多个部分。一个流程输入,多个流程输出。从上到下执行所有右侧流程槽。
Branch(分支)
输入:Bool - System.Boolean
根据条件评估分支执行。如果 Bool 为 True,则执行 True 流程路径。如果 Bool 为 False,则执行 False 流程路径。
Comment(注释)
为用户提供输入注释字符串的空间。编译期间不包含此字符串。
Const Null(常量空值)
提供用于空值检查的"null"值。
Const This(常量自身)
提供对 UdonBehavior 所属的 GameObject 的引用。
Event Custom(自定义事件)
输入:name - System.String
可以通过 UdonBehaviour 节点 执行的自定义事件。
您必须在图中输入名称来命名自定义事件。程序运行时无法更改事件名称。
For(循环)
输入:start、end、step - System.Int32
输出:index - System.Int32
使用计数器执行流程。计数器初始化为 start 的值。执行 Body 流程,然后计数器按 step 值递增。这继续直到计数器的值等于或大于 end。一旦发生这种情况,流程沿着 Exit 流程继续。
Get Variable(获取变量)
输入:name - System.String
输出:System.Object
获取名为 name 的 Udon 变量并作为输出提供。
Set Variable(设置变量)
输入:name - System.String value - System.Object sendChange - Boolean
执行流程时将名为 name 的 Udon 变量设置为 value。如果选中了 sendChange,它还将触发该变量的 OnVariableChanged 事件。
Get Program Variable(获取程序变量)
输入:instance - UdonBehaviour symbolName - string
从另一个 UdonBehaviour instance 获取 Udon 变量 symbolName 的值。如果目标 UdonBehaviour 是公共变量并在检查器中连接,效果最佳,这允许你从下拉菜单中选择目标变量名称。如果 instance 未连接 UdonBehaviour,它将使用当前 UdonBehaviour 的变量名。如果你知道变量名并想直接设置它,使用 String const 节点手动输入。
Set Program Variable(设置程序变量)
输入:instance - UdonBehaviour symbolName - string value - Object
将另一个 UdonBehaviour instance 上的 Udon 变量 symbolName 的值设置为 value。如果目标 UdonBehaviour 是公共变量并在检查器中连接,效果最佳,这允许你从下拉菜单中选择目标变量名称。如果 instance 未连接 UdonBehaviour,它将使用当前 UdonBehaviour 的变量名。如果你知道变量名并想直接设置它,使用 String const 节点手动输入。此节点还会触发目标变量的 OnVariableChanged 事件。
On Variable Changed
Outputs: newValue oldValue
每当在目标变量上调用 SetProgramVariable,或使用选中 sendChange 的 Set Variable 时触发。同样适用于同步变量!
While(循环)
输入:Bool - System.Boolean
当 Bool 为 true 时执行 Body 的流程。如果 Bool 为 false,则执行 Exit 流程。
UdonBehaviour 节点
UdonBehaviour 节点允许你的程序与其他 UdonBehaviour 交互——无论是本地、延迟还是通过网络。
下面的节点仅适用于 public 事件。如果你使用 Udon Graph,你的自定义事件始终是 public。如果你使用 UdonSharp,请确保在此处使用 public 而不是 private 事件!
SendCustomEvent
输入:instance - UdonBehaviour,eventName - String
在目标 UdonBehaviour 上运行事件 'eventName'。如果 instance 留空,则指向其自身的事件之一。
SendCustomEventDelayedFrames
输入:instance - UdonBehaviour,eventName - String,delayFrames - int,eventTiming - EventTiming
在等待 delayFrames 帧后,在目标 UdonBehaviour 上运行事件 eventName。它将根据选择的 eventTiming 在 Update、LateUpdate、FixedUpdate 或 PostLateUpdate 期间运行事件。最少延迟 1 帧。
请注意,Unity 的帧计数基于 Update 事件。如果你在 Update 事件之前调用 SendCustomEventDelayedFrames,例如 Start 或输入事件,延迟可能比预期少 1 帧。
SendCustomEventDelayedSeconds
输入:instance - UdonBehaviour,eventName - String,delaySeconds - float,eventTiming - EventTiming
在等待 delaySeconds 秒后,在目标 UdonBehaviour 上运行事件 'eventName'。它将根据选择的 eventTiming 在 Update、LateUpdate、FixedUpdate 或 PostLateUpdate 期间运行事件。
如果 delaySeconds 为零,事件将在同一帧或下一帧执行(参见上面的 SendCustomEventDelayedFrames)。
SendCustomNetworkEvent
输入:instance - UdonBehaviour,target - NetworkEventTarget,eventName - String
根据 target 在远程玩家的目标 UdonBehaviour 上运行事件 eventName。具有包含参数的重载。
有关更多详细信息,请查看网络事件页面。