使用指南
入门路径 / 创建、打开和挂接工作流
了解 .sgw 文件的创建入口、面板打开方式、组件挂接关系和适合新手的保存习惯。
Script Graph 的一切都从一个 .sgw 文件开始。你可能已经在 Hello World 里创建过一个了,但把”文件、面板、组件”这三者的关系彻底捋清楚,是接下来所有章节的基础。搞不清它们,后面很容易出现”图看着没错,但就是不生效”的困惑。
从哪儿创建
在 Cocos Creator 资源管理器里右键任意目录或资源,选择:
脚本图流(Script Graph Workflow)
系统会创建一个 NewWorkflow.sgw。
- 在文件夹上右键 → 创建在这个文件夹里。
- 在文件上右键 → 创建在该文件所在目录。
创建的一瞬间可以直接改名——建议按用途命名,别用默认名,等项目大了会很难找:
| 用途 | 建议命名 |
|---|---|
| 角色控制 | PlayerController.sgw |
| UI 按钮或面板 | StartButton.sgw / HomePanel.sgw |
| 关卡管理 | LevelManager.sgw |
| 函数库 | GameMath.sgw |
| 数据结构 | PlayerStats.sgw |
怎么打开
双击 .sgw 就会弹出工作流面板。
有几个细节要知道:
- Script Graph 允许同时开最多 10 个工作流面板。达到上限后,再打开会提示——先关掉几个不用的。
- 双击一个已经打开的
.sgw,会聚焦到已有面板,而不是重复开一份。 - 面板可以在编辑器里拖动,找到你顺手的位置固定下来,写玩法时来回切场景就不会乱。
首次打开时那个类型选择
第一次打开一个空 .sgw,Script Graph 会问你想让它是哪种主类型。这是一次性选择,选了就无法在同一份文件里改——所以选之前想清楚它承担什么职责。
新手请优先选「组件」,理由很简单:组件能直接挂到场景节点,跟随生命周期运行,这是最容易把”跑起来”这件事验证掉的类型。
各类型的分工大概是这样:
| 类型 | 该放什么 |
|---|---|
| 组件 | 角色、UI 面板、关卡管理、场景对象——一切”挂在节点上、跟随场景运行”的行为 |
| 函数库 | 公共计算、数值格式化、跨工作流复用的工具逻辑 |
| 类 | 背包物品、角色数据、任务实例——可实例化、可携带方法的对象 |
| 接口 | 一组对象共同要遵守的字段和方法契约 |
| 枚举 | 有限选项:状态、方向、道具品质、事件名 |
| 结构体 | 一组字段组成的数据包,比如属性、坐标配置、战斗结果 |
一个经验:“要不要挂到节点上”是判断的关键——要挂就是组件,不挂就是其他类型。
组件工作流和场景节点的关系
组件工作流编译之后,会生成一个 Cocos Creator 认得的 TypeScript 组件。这个组件必须挂到场景节点上才会真的跑——否则它只是一段代码,没有触发时机。
推荐的组织习惯:
- 一个场景根逻辑一个工作流:
GameRoot.sgw挂到根节点,负责关卡启动、全局状态。 - 一个 UI 面板一个工作流:
HomePanel.sgw挂到面板节点,负责按钮、切换、显示逻辑。 - 一个可复用对象一个工作流:
EnemyController.sgw挂到敌人 Prefab,让每个敌人都有自己的一份。 - 通用计算不放在组件里复制——放到函数库,需要的时候调用一次。
这样做的好处是:改 UI 时不会误动关卡逻辑;换 Prefab 时不需要重接一堆事件;每张图都保持在一屏之内,读起来轻松。
保存和编译的节奏
新手最容易犯的错是”一口气搭大图”——放了十几个节点、连了几十条线,然后一次性运行,结果没跑通,谁也说不清是哪个环节出了问题。
推荐的节奏是:小步走,边搭边验证。
- 放一个入口节点。
- 接一个调试打印。
- 保存并编译,运行确认能触发。
- 再接入一段真实业务线。
- 每加入一段分支、循环、异步资产加载或组件操作后,再编译再确认一次。
这样即使某一步坏了,你能立刻定位到是最近这几步里的问题——而不是从整张大图里去推断。
下一步
- 还没跑过第一张图?先做 Hello World:打印第一条消息。
- 已经能输出文本了?继续读 节点、引脚和连线,把最核心的执行模型吃透。