跳到主要内容

编辑器入门:把节点和脚本连起来

把编辑器看成一张可以保存的装配台:你把节点放进场景,把组件挂到节点,再把组件需要的引用填好。脚本写得正确,不代表这张装配台已经接好线。

编辑器各区域与场景装配关系的教学示意点击图片查看原图 ↗

先准备一个可重复的环境​

通过 Cocos Dashboard 安装并选择 Creator 3.8.8,新建 2D 项目。本文节点名称是约定,不要求某个模板默认就存在这些节点。

  1. 创建并保存场景 Main,确保有 Canvas 与用于 UI 的相机;若模板已有就复用。
  2. 在 Canvas 上设置设计分辨率,例如 720 × 1280。它是布局参考,不等于每台手机的实际像素。
  3. 在 Canvas 下创建 Game,添加 UITransform,尺寸同设计区域,位置归零。
  4. 在 Game 下创建 Target:带 UITransform、Sprite 和 Button,设置可见大小,例如 160 × 160。可使用项目提供的白色精灵,再调整颜色。
  5. 创建三个带 Label 的节点 ScoreLabel、TimeLabel、ResultLabel;再创建一个带 Button 的 RestartButton,按钮下的 Label 写“重新开始”。
  6. 新建 assets/scripts,把闭环章节的脚本放入,等待编辑器编译完成。

四个区域分别做什么​

区域操作常见误会
层级管理器选择节点、安排父子关系调整资源目录不会改变场景父子关系
场景编辑器移动、缩放、预览空间关系编辑器镜头不是游戏相机
资源管理器管理脚本、图片、Prefab 等文件存在不意味着已被场景引用
属性检查器设置组件属性、拖入引用拖入节点不一定等于正确的组件类型

例如脚本属性类型是 Label,就把带 Label 的节点拖到该字段,并确认检查器显示正确组件。引用为空通常是装配问题,不能靠再写一个自动查找节点的工具掩盖。

节点树先搭清楚​

Main
└─ Canvas
├─ Camera(名称依模板而异)
└─ Game [UITransform, ClickCollector]
├─ Target [UITransform, Sprite, Button]
├─ ScoreLabel [Label]
├─ TimeLabel [Label]
├─ ResultLabel [Label]
└─ RestartButton [Button]
└─ Label [Label]

本文用脚本监听 Button 点击,因此不要再在检查器的 Click Events 中额外绑定同一个回调,否则一次点击可能执行两次。

先做这几个检查​

预览后目标可见、文字可读、按钮有尺寸;控制台没有编译错误;检查器没有丢失的脚本;脚本字段都已绑定。再去做玩法。UI 看不见时先查层级、active、相机、尺寸和资源,不要一次更改十个设置。

给 AI:“按本文节点树告诉我每个组件挂在哪个节点、哪些字段要拖拽。不要只给脚本。”

依据:编辑器界面、项目结构。