游戏事件节点编辑器
节点编辑器是一个可视化编排工具,通过在单个可读图表中显示复杂的事件依赖关系来解决"意大利面条代码"问题。
您只需查看流程图,而不是在分散的脚本中寻找以了解事件为什么触发。

🎯 设计理念
传统的Unity事件是"即发即弃"——非常适合解耦,但对于调试序列来说很糟糕。
流程图引入了两种强大的执行模式:
| 模式 | 执行 | 行为 | 使用场景 |
|---|---|---|---|
| 触发器(扇出) | 并行 | 非阻塞。一个事件同时触发多个其他事件 | "OnPlayerDeath" → 播放声音 + 生成粒子 + 显示UI |
| 链(序列) | 串行 | 阻塞。事件一个接一个地触发,带有延迟 | "StartCutscene" → (等待2秒) → "ShowDialog" → (等待输入) → "EndCutscene" |
🎯 触发器(扇出)

⛓️ 链(顺序)

通过组合这些模式,您可以构建既解耦又结构化的逻辑。
🚀 打开编辑器
从**游戏事件编辑器**访问流程图编辑器
游戏事件编辑器 → 点击工具栏中的"Flow Graph"按钮
这确保您在正确的事件库上下文中工作。
🛠️ 工具栏概览
工具栏管理流程图资产和全局设置。

流程资产下拉菜单
在不同的流程图资产之间切换(例如,Global_Flow、Level_1_Flow)。
切换时图表内容立即更新。
为不同的游戏系统创建单独的流程图,以保持逻辑清晰和可维护。将图表作为子资产存储在流程容器资产中。
图表管理
新建按钮(+ New):在当前容器中创建新图表。
图表名称字段:点击重命名当前图表。
删除按钮:删除当前图表(需确认)。
图表控制
对齐按钮(Snap):切换网格对齐。启用时,节点在移动期间会自动对齐到20单位网格线,确保完美组织的布局。
对齐按钮(Align):切换智能对齐指南。启用时,当您拖动的节点的边缘(左、中、右)或中线(上、中、下)与画布上其他节点对齐时,会出现蓝色垂直或水平虚线。
活动切换(🟢 / 🔴):在运行时启用/禁用整个图表。
刷新按钮:从GameEventManager重新加载容器列表。
帮助按钮(? Help):打开快速参考指南,包含所有快捷键和颜色代码。

🖱️ 画布导航
编辑器具有为大规模逻辑图表设计的无限可缩放画布。
基本控制
| 操作 | 控制 | 描述 |
|---|---|---|
| 平移视图 | 鼠标中键拖动 | 在画布上移动 |
| 缩放 | 滚轮 | 放大/缩小(以鼠标光标为中心) |
| 上下文菜单 | 右键点击 | 添加节点或组 |
| 快速创建 | 双击 | 在空画布上打开节点创建菜单 |
缩放范围:0.2x - 3.0x(20%到300%)
网格:次要线条每20个单位,主要线条每100个单位。启用Snap时,节点锁定到20单位次要网格线。
🎯 使用节点
创建节点

| 操作 | 控制 | 描述 |
|---|---|---|
| 快速创建 | 双击画布 | 打开节点创建菜单 |
| 上下文菜单 | 右键点击 → 添加节点 | 创建触发器或链节点 |
| 从选择 | 右键点击节点 | 节点操作的上下文菜单 |
节点类型:
- 触发器节点:并行执行(扇出模式)
- 链节点:顺序执行(序列模式)
节点选择
| 操作 | 控制 | 描述 |
|---|---|---|
| 选择节点 | 左键点击 | 选择单个节点 |
| 添加到选择 | Ctrl/Shift + 点击 | 切换节点进/出选择 |
| 框选 | 左键点击 + 拖动 | 选择矩形中的所有节点 |
| 全选 | Ctrl + A | 选择图表中的所有节点 |
| 清除选择 | Escape | 取消选择所有内容 |
| 编辑节点 | 双击节点 | 打开节点行为配置 |
移动节点
| 操作 | 控制 | 描述 |
|---|---|---|
| 移动节点 | 左键拖动 | 移动选定的节点 |
| 多重移动 | 左键拖动(带选择) | 一起移动所有选定的节点 |
组行为:当节点属于一个组时,移动它们会自动更新组边界。
布局助手:
- 网格对齐:当Snap激活时,移动被锁定为20像素增量,与背景网格匹配。
- 智能对齐:当Align激活时,编辑器通过蓝色虚线提供视觉反馈。它自动检测对齐:
- 垂直:左边缘、水平中心和右边缘。
- 水平:顶部边缘、垂直中心和底部边缘。
节点上下文菜单

右键点击节点以进行快速操作:
- 编辑节点:打开行为配置窗口
- 复制节点:复制到剪贴板
- 剪切节点:复制并删除
- 删除节点:删除节点和所有连接
- 设置为根:标记为图表入口点
- 转换为触发器/链:更改节点类型
多选上下文菜单

当选择多个节点时,右键点击显示:
- 复制N个节点:将选择复制到剪贴板
- 剪切N个节点:复制并删除选择
- 删除N个节点:删除所有选定的节点
- 创建组:从选定的节点创建组(至少需要2个节点)
🔗 创建连接
连接定义节点之间的事件流。
连接操作
| 操作 | 控制 | 描述 |
|---|---|---|
| 创建连接 | 从输出端口(右)拖动 | 拖动到另一个节点的输入端口(左) |
| 重新路由连接 | 从输入端口拖动 | 断开连接并连接到不同的节点 |
| 删除连接 | 选择 + 删除 | 删除连接 |
视觉反馈:
- 拖动时显示预览线
- 颜色表示兼容性(参见连接类型)
- 无效目标显示为灰色
连接规则:
- 始终从输出(右端口)拖动到输入(左端口)
- 根节点没有输入端口
- 节点可以有多个传入和传出连接
📁 分组系统
使用可视化组组织大型图表以提高可读性和可维护性。

创建组
方法1:选择节点 → 右键点击 → 创建组
方法2:使用框选 → 右键点击选择 → 创建组
要求:
- 至少需要2个节点
- 选定的节点将被分组在一起
- 根据节点位置自动计算组边界
管理组
| 操作 | 操作方法 | 结果 |
|---|---|---|
| 重命名 | 双击组标题 | 进入编辑模式(Escape取消) |
| 选择组 | 左键点击组区域 | 选择整个组 |
| 移动组 | 拖动组区域 | 一起移动所有成员节点 |
| 仅删除组 | Delete键 | 删除组框架,保留节点 |
| 删除组 + 节点 | Shift + Delete | 删除组和内部所有节点 |
视觉指示器:
- 选定的组:更亮的边框 + 高亮标题
- 组标题:显示在组边界的右下角
- 组边界:半透明圆角矩形
组成员资格
向组添加节点:
- 选择现有组 + 要添加的节点
- 右键点击 → 创建组
- 所有选定的节点将包含在新组中
- 旧组被删除,新组被创建
从组中删除节点:
- 从组中删除特定节点
- 组自动从其成员资格中删除该节点
- 如果组剩余≤1个节点,组将自动删除
约束:
- 每个节点一个组:每个节点一次只能属于一个组
- 自动清理:≤1个节点的组将自动删除
- 动态边界:成员节点移动时组自动调整大小
组上下文菜单

右键点击组:
- 重命名组:进入重命名模式
- 复制组:复制整个组结构(节点 + 内部连接)
- 删除组(保留节点):仅删除组框架
- 删除组 + 节点:删除所有内容
📋 复制粘贴系统
复制节点和组以加快工作流程。
节点复制粘贴
| 操作 | 控制 | 描述 |
|---|---|---|
| 复制节点 | Ctrl + C | 将选定的节点复制到剪贴板 |
| 剪切节点 | Ctrl + X | 剪切选定的节点(复制 + 删除) |
| 粘贴节点 | Ctrl + V | 以增量偏移粘贴 |
| 重置粘贴 | Escape | 重置下一次操作的粘贴计数器 |
粘贴行为:
- 按Escape重置偏移计数器
- 保留粘贴节点之间的连接
- 粘贴的节点永远不会设置为根
组复制粘贴
| 操作 | 控制 | 描述 |
|---|---|---|
| 复制组 | Ctrl + C | 复制整个组结构 |
| 粘贴组 | Ctrl + V | 以50px偏移粘贴组 |
复制的内容:
- 组框架和标题(带"(Copy)"后缀)
- 所有成员节点及其配置
- 内部连接(组成员之间的连接)
- 相对节点位置
不复制的内容:
- 外部连接(到/从外部节点的连接)
- 根节点状态
- 节点ID(自动生成新ID)
右键菜单显示"复制组"选项以便快速访问。Ctrl+C和右键菜单的工作方式相同。使用组作为重复逻辑模式的模板。
⌨️ 键盘快捷键
复制粘贴
| 快捷键 | 操作 |
|---|---|
| Ctrl + C | 复制选定的节点或组 |
| Ctrl + V | 以增量偏移粘贴 |
| Ctrl + X | 剪切选定的节点(复制 + 删除) |
撤销/重做
| 快捷键 | 操作 |
|---|---|
| Ctrl + Z | 撤销(最多50步) |
| Ctrl + Shift + Z / Ctrl + Y | 重做 |
历史范围:跟踪节点创建/删除、连接、组更改、位置更改、复制/粘贴操作。
选择
| 快捷键 | 操作 |
|---|---|
| Ctrl + A | 选择所有节点 |
| Escape | 清除选择/取消操作/重置粘贴计数器 |
删除
| 快捷键 | 操作 |
|---|---|
| Delete | 删除选定的项目 |
| Shift + Delete | 级联删除:删除组和内部所有节点 |
删除行为:
- 删除节点:删除所有连接的连接并更新组成员资格
- 删除组(Delete):保留成员节点
- 删除组(Shift + Delete):删除组和所有成员节点
- 删除连接:仅删除链接
- 剩余≤1个节点的组将自动删除
🎨 上下文菜单参考
空白处
- 添加触发器节点:在光标位置创建新触发器节点
- 添加链节点:在光标位置创建新链节点
- 粘贴节点:(如果剪贴板有节点)显示粘贴计数
- 粘贴组:(如果剪贴板有组)显示组名称
单个节点
- 编辑节点:打开行为配置窗口
- 复制节点:复制到剪贴板
- 剪切节点:复制并删除
- 删除节点:删除节点和连接
- 设置为根:标记为图表入口点
- 转换为触发器/链:更改节点类型
多个节点(选择)
- 复制N个节点:将选择复制到剪贴板
- 剪切N个节点:复制并删除选择
- 删除N个节点:删除所有选定的
- 创建组:组选择(至少2个节点)
组
- 重命名组:进入重命名模式
- 复制组:复制整个组结构
- 删除组(保留节点):仅删除组框架
- 删除组 + 节点:删除组和所有成员节点
📊 状态栏
在画布底部显示实时信息:
- 当前缩放级别(例如,
Zoom: 1.2x) - 节点计数(例如,
Nodes: 15) - 连接计数(例如,
Connections: 23) - 选择信息(例如,
Selected: 3 node(s), 1 group(s)) - 撤销/重做堆栈深度
🎓 工作流示例
示例1:构建玩家死亡序列

目标:创建具有并行效果和顺序菜单转换的死亡序列。
步骤1:创建根节点
- 双击画布 → 选择"添加触发器节点"
- 选择
OnPlayerDeath事件 - 右键点击节点 → "设置为根"
步骤2:添加并行动作(触发器模式)
- 创建3个触发器节点:
PlayDeathSound、SpawnParticles、ShowGameOverUI - 从根输出拖动 → 连接到所有3个节点(扇出)
步骤3:添加顺序动作(链模式)
- 创建链节点:
FadeToBlack - 双击 → 设置延迟:2秒
- 创建链节点:
ReturnToMenu - 连接
FadeToBlack→ReturnToMenu - 连接
OnPlayerDeath→FadeToBlack
步骤4:使用组组织
- 框选所有与死亡相关的节点
- 右键点击 → "创建组"
- 双击组标题 → 重命名为"Death Sequence"
结果:清晰的并行声音/VFX执行的可视化表示,然后是顺序菜单转换。
❓ 故障排除
更改未保存
原因:Unity尚未序列化更改。
解决方案:
- 关闭窗口以强制保存
- 切换到另一个图表然后返回
- 在Unity中按Ctrl+S
图表显示为空
可能原因:
- 工具栏下拉菜单中选择了错误的图表
- 流程容器未在GameEventManager中分配
解决方案:
- 检查工具栏图表下拉选择
- 在GameEventManager Inspector中验证容器分配
无法创建连接
可能原因:
- 从输入拖动到输出(方向相反)
- 尝试连接到根节点的输入端口
- 连接已存在
解决方案:
- 始终从输出(右)拖动到输入(左)
- 根节点没有输入端口
组未自动调整大小
原因:仅在移动成员节点时更新组边界。
解决方案:稍微移动任何成员节点以触发边界重新计算。
粘贴的组缺少外部连接
预期行为:仅复制内部连接(组成员之间)。
说明:到组外节点的外部连接有意不被复制,以允许灵活重用组模板。
解决方案:粘贴组后手动重新连接外部依赖项。
无法创建组
可能原因:
- 选择少于2个节点
- 尝试对已分组的节点进行分组
解决方案:
- 至少选择2个节点
- 要重新分组,首先删除旧组或选择组和新节点以创建新组
📖 下一步
现在您了解了画布导航和组织,继续您的旅程:
🔗 连接类型与兼容性
核心概念: 了解端口颜色、线条类型和类型兼容性规则。
⚙️ 节点行为配置
逻辑控制: 配置延迟、条件和执行设置。
🧩 高级模式
专家级别: 使用组合模式构建复杂的事件编排。
尽早组织:在构建时创建组,以避免以后出现混乱的图表。
自由使用撤销:Ctrl+Z跟踪最多50步——无所畏惧地尝试连接。
构建模板:为常见模式创建可重用的组模板。
描述性命名:清晰的图表和组名称在系统之间切换时有帮助。
设置根节点:为每个逻辑流程序列标记清晰的入口点。
智能复制:构建一次,多次粘贴。使用组作为蓝图。
忘记了快捷键?点击工具栏中的帮助按钮(? Help)以查看包含所有键盘快捷键、鼠标控制和可视化颜色图例的完整快速参考指南。