Skip to main content

Udon 节点图

Udon 节点图是创建 Udon 程序的默认界面。本节介绍如何使用它。如果您想直接看示例,请查看 Udon 示例场景。

界面​

您可以使用 VRChatSDK > Udon Graph 菜单项打开 Udon Graph 窗口,或单击 UdonBehaviour 组件上的 Open Udon Graph 按钮。

Udon 窗口

如果通过菜单命令打开窗口,您会看到欢迎屏幕,其中包含更新日志和一些设置。

可以同时打开多个图表,您可以使用图表窗口顶部的选项卡在它们之间切换。

您可以通过点击要关闭的选项卡角落的 X 来关闭选项卡。图表选项卡不是"真正"的选项卡,每次选择时都会重新打开。这意味着切换选项卡所需的时间与打开图表相同。

流程​

图表的流程定义了哪些节点将运行以及它们执行的顺序。

上图中的三角形是_流_端口,它们从左到右依次触发,沿着连接它们的连线。要理解 Udon 图表中发生的事情并制作自己的图表,请_跟随流程_。

顶部栏有一个"Highlight flow"切换开关,启用后会高亮通过流程边连接的节点,让您快速了解程序如何到达特定节点。

如果节点没有任何流程连接,则不会发生任何事情。

在上面的图表中:

  1. 世界加载时触发 Start 事件
  2. 接下来触发 Branch。它检查复选框的值,然后触发 True 或 False 路径。
  3. 如果值为 True,则触发顶部节点,发送一个名为 "Hello" 的自定义事件。
  4. 否则,发送一个名为 "Goodbye" 的自定义事件。

如果您还不了解发送自定义事件的含义,没关系。学习阅读图表的流程是理解它们作用的第一步。

创建节点​

节点是代表您可以触发的方法的方框。构建图表包括创建节点并将它们连接在一起以创建程序。

有几种创建节点的方法:

快捷键​

按住以下其中一个键,然后点击图表上的任意位置以创建对应的节点:

  • 1 : float
  • 2 : Vector2
  • 3 : Vector3
  • 4 : Vector4
  • + : float 加法
  • - : float subtraction
  • = - float equality comparison
  • b: Branch
  • shift+b : Block

其他快捷键:​

  • 按住"C"并点击常量可将其转换为变量。
  • Shift+A 对齐选中的节点
  • 按住 Ctrl+G 快速分组
  • L+单击记录选中节点的值
  • 按住"Shift+F"并点击输出数组类型的节点,自动生成 foreach 循环 其中许多功能也适用于各节点的右键菜单。 轻松制作 for 循环!

拖放 GameObject 和组件​

如果你想为 GameObject 或 Component 添加交互,可以将它们从层级拖放到图表中。例如,你可以通过从'Light'标题拖放到图表来拖放 Light 组件。 获取 Light 组件引用的简便方法,以便操作它。 通过拖放创建节点的方式会创建与你的 GameObject 或 Component 绑定的变量,因此你会在变量窗口中看到一个新变量,以及一个实际上是"Get Variable"节点的节点,该节点自动设置为获取你的新组件。

拖放变量​

你可以通过按图表侧边栏变量窗格中的 + 按钮来创建任何类型的变量。然后你可以将变量名拖放到图表上以创建"Get Variable"节点,按住 Ctrl 键拖动可创建"Set Variable"节点,或按住 Alt 键创建"On Variable Changed"节点。

搜索节点​

按 空格键 打开快速搜索,然后输入你要交互的类的前几个字母。

如果你了解 Unity 的基本类和对象类型,这种搜索方法效果最佳。还有其他搜索方法,参见:搜索节点

编译图表​

图表会定期在后台自动编译。此时,你会在图表的右上角看到一次闪烁,如果一切正常,状态框将变为绿色;如果有问题,则变为红色。无论哪种情况,你都可以单击状态框查看生成的汇编代码,或查看错误信息(如果有问题)。

状态框显示"OK",我们可以看到此汇编代码顶部声明的变量。

运行图表​

将图表上传到 VRChat 之前,有两种方法可以在场景中运行它们。

在编辑器中运行​

你可以使用 Unity 的"播放"按钮直接在编辑器中运行场景,以测试某些图表。这对于一些简单的方法和逻辑有效,但以下项目无法正常工作:

  • 同步变量和网络事件

运行 Build & Test​

使用 VRChat SDK 窗口进行本地测试。这需要稍长的时间,因为它会将你的内容打包到离线世界中,并启动实际的 VRChat 客户端,为你提供一个可以交互对象和 VRCPlayerAPI 请求的化身。 测试同步功能的最简单方法是启动 2 个本地客户端。

要测试同步变量和网络事件,你需要两个客户端——你可以使用"客户端数量"字段启动最多 8 个本地客户端,它们将在私有测试世界中启动。它们都有相同的显示名称,但将被视为不同的玩家,以便你可以测试交互。

如果"Force Non-VR"对你不起作用,请切换到 VRChat SDK 窗口的"设置"选项卡,并将你的 VRChat 客户端路径设置指向实际的 VRChat 安装。

VRChat SDK 中的已安装客户端路径设置

上传你的世界​

一旦你创建了 VRChat 账户,就可以进行 Build & Test。要发布世界以便其他人可以访问,你需要在 VRChat 中花费一些时间——访问世界、结交朋友并获得灵感!