使用指南
核心概念 / 事件、执行流和数据流
解释生命周期事件、全局事件、节点事件、执行顺序和数据传递的关系。
16
Script Graph 的执行不是凭空发生的。你需要先选择“什么时候开始”,再决定“接下来做什么”,最后把需要的数据传进去。
三个问题
搭任何工作流前,先回答三个问题:
| 问题 | 对应能力 |
|---|---|
| 什么时候触发? | 生命周期事件、全局事件、节点事件、函数调用 |
| 触发后按什么顺序做? | 执行流 |
| 每一步需要什么值? | 数据流 |
只要其中一个问题没回答完整,工作流就容易出现“不触发”“顺序错”“数据为空”的问题。
生命周期事件
组件工作流最常用的入口是生命周期事件:
| 事件 | 适合做什么 |
|---|---|
| 加载 | 初始化引用、准备默认状态、打印启动标记 |
| 启动 | 场景节点和其他组件就绪后开始主逻辑 |
| 更新 | 每帧移动、计时、输入轮询 |
| 启用 | 面板或对象重新启用时恢复状态 |
| 禁用 | 暂停计时、解绑临时监听 |
| 销毁 | 清理绑定、释放引用 |
如果你只是想验证工作流能跑,优先用加载事件或启动事件;如果要做持续移动,再用更新事件。
全局事件
全局事件适合跨对象通信,例如:
GameStart:开始游戏。ScoreChanged:分数变化。PlayerDead:玩家死亡。LevelCompleted:关卡完成。
建议把事件名放进枚举,避免多个工作流里手写字符串写错。绑定全局事件时,要同时考虑解绑时机,避免对象销毁后还收到回调。
节点事件
节点事件适合监听场景对象本身,例如按钮点击、碰撞、触摸、键盘输入等。常见流程是:
- 找到目标节点或组件。
- 绑定对应事件。
- 在事件回调里接后续执行流。
- 在禁用或销毁时取消不再需要的绑定。
按钮、输入、碰撞这类交互问题,通常先检查目标节点和组件是否选对,再检查事件是否绑定成功。
执行流的顺序
执行线通常从事件或函数入口出发。遇到分支、循环、延迟、异步资产加载时,顺序会改变:
- 分支根据布尔值选择一路。
- 循环会重复执行一段逻辑。
- 延迟会把后续逻辑推迟。
- 异步资产节点会在资源加载完成后继续。
- 序列节点可以把一个入口拆成多段顺序执行。
遇到顺序问题时,把打印节点放到每条关键执行线后面,确认真实路径。
数据流的来源
数据可以来自:
- 节点默认输入。
- 变量读取。
- 上游节点输出。
- 函数参数。
- 事件回调参数。
- 资产选择器、节点路径选择器、组件选择器。
- 结构体构造或拆解。
如果某个节点结果不对,先打印它的输入,再打印它的输出。不要只看最终现象。