Script Graph

使用指南

核心概念 / 事件、执行流和数据流

解释生命周期事件、全局事件、节点事件、执行顺序和数据传递的关系。

16

Script Graph 的执行不是凭空发生的。你需要先选择“什么时候开始”,再决定“接下来做什么”,最后把需要的数据传进去。

三个问题

搭任何工作流前,先回答三个问题:

问题对应能力
什么时候触发?生命周期事件、全局事件、节点事件、函数调用
触发后按什么顺序做?执行流
每一步需要什么值?数据流

只要其中一个问题没回答完整,工作流就容易出现“不触发”“顺序错”“数据为空”的问题。

生命周期事件

组件工作流最常用的入口是生命周期事件:

事件适合做什么
加载初始化引用、准备默认状态、打印启动标记
启动场景节点和其他组件就绪后开始主逻辑
更新每帧移动、计时、输入轮询
启用面板或对象重新启用时恢复状态
禁用暂停计时、解绑临时监听
销毁清理绑定、释放引用

如果你只是想验证工作流能跑,优先用加载事件或启动事件;如果要做持续移动,再用更新事件。

全局事件

全局事件适合跨对象通信,例如:

  • GameStart:开始游戏。
  • ScoreChanged:分数变化。
  • PlayerDead:玩家死亡。
  • LevelCompleted:关卡完成。

建议把事件名放进枚举,避免多个工作流里手写字符串写错。绑定全局事件时,要同时考虑解绑时机,避免对象销毁后还收到回调。

节点事件

节点事件适合监听场景对象本身,例如按钮点击、碰撞、触摸、键盘输入等。常见流程是:

  1. 找到目标节点或组件。
  2. 绑定对应事件。
  3. 在事件回调里接后续执行流。
  4. 在禁用或销毁时取消不再需要的绑定。

按钮、输入、碰撞这类交互问题,通常先检查目标节点和组件是否选对,再检查事件是否绑定成功。

执行流的顺序

执行线通常从事件或函数入口出发。遇到分支、循环、延迟、异步资产加载时,顺序会改变:

  • 分支根据布尔值选择一路。
  • 循环会重复执行一段逻辑。
  • 延迟会把后续逻辑推迟。
  • 异步资产节点会在资源加载完成后继续。
  • 序列节点可以把一个入口拆成多段顺序执行。

遇到顺序问题时,把打印节点放到每条关键执行线后面,确认真实路径。

数据流的来源

数据可以来自:

  • 节点默认输入。
  • 变量读取。
  • 上游节点输出。
  • 函数参数。
  • 事件回调参数。
  • 资产选择器、节点路径选择器、组件选择器。
  • 结构体构造或拆解。

如果某个节点结果不对,先打印它的输入,再打印它的输出。不要只看最终现象。

继续阅读