Script Graph

使用指南

实战教程 / 按钮开始游戏和场景切换

用 Button、事件绑定、场景名选择和 Director 节点搭建常见的开始游戏流程。

16

这个案例搭一个常见首页流程:点击“开始”按钮后切换到游戏场景。它适合练习 UI 组件获取、事件绑定、场景名选择和基础排查。

本案例要学会什么

按钮开始游戏看起来简单,但它同时包含四个容易混在一起的问题:

问题对应能力
工作流什么时候启动生命周期入口
按钮节点在哪里场景节点查找
点击事件怎么进入工作流UI 事件绑定
游戏场景怎么打开Director 场景加载

本教程会把这四件事分开验证。不要一上来就直接切场景;先证明按钮事件已经触发,再接入场景加载。这样排查范围会小很多。

场景准备

准备两个场景:

场景用途
Home首页,包含开始按钮
Game游戏主场景

Home 场景中创建:

  • 一个按钮节点,命名为 StartButton
  • 一个空节点,命名为 HomePanelLogic,用于挂接工作流组件。

创建工作流

创建 HomePanel.sgw,首次打开选择“组件”类型。编译后把生成组件挂到 HomePanelLogic

这里的挂接关系建议保持清楚:StartButton 只负责显示和接收点击,HomePanelLogic 负责承载流程逻辑。把逻辑组件挂在独立节点上,后续替换按钮皮肤或调整 UI 层级时不容易误删逻辑。

节点搭建

核心流程如下:

启动事件
  -> 查找 StartButton 节点
  -> 获取 Button 组件
  -> 绑定按钮点击事件
  -> 事件触发后加载 Game 场景

你会用到这些节点族:

任务节点族
启动入口事件节点
查找场景节点Cocos 节点
获取 Button 组件UI Button 节点
切换场景Director 节点
打印排查调试节点

先做可观测版本

不要一开始就直接切场景。先在按钮事件后接“打印字符串”,文本写:

Start button clicked

预览并点击按钮。能看到输出后,再把后续逻辑换成场景切换。

加入场景切换

在按钮点击事件后接 Director 的场景加载相关节点,把目标场景设置为 Game。如果节点提供场景选择器,优先使用选择器,少手写字符串。

建议保留一条临时打印:

Loading Game scene

这样可以区分“按钮没触发”和“场景加载失败”。

验收标准

完成后按下面顺序验收:

  1. 运行 Home 场景时没有编译错误。
  2. 入口后的临时打印只出现一次。
  3. 点击 StartButton 后能看到 Start button clicked
  4. 继续执行时能看到 Loading Game scene
  5. 画面切到 Game 场景。
  6. 连续点击不会重复触发多次加载。

如果第 3 步失败,重点查按钮、事件绑定和组件获取。如果第 3 步成功但第 5 步失败,重点查场景名、构建设置和 Director 节点。

常见问题

现象检查点
点击无反应先确认按钮事件后面的打印有没有输出
找不到 Button节点路径是否指向 StartButton,按钮节点上是否真的有 Button 组件
场景未切换目标场景是否已加入 Cocos 构建设置
运行时报空值查找节点或获取组件节点的输出是否为空
重复触发是否在多次启用时重复绑定事件

扩展练习

  • 点击按钮前先禁用按钮,避免连续点击。
  • 切场景前播放按钮音效。
  • 切场景前写入全局状态,例如当前关卡编号。
  • 用枚举管理场景状态,而不是散落字符串。