🚀 Cocos Creator 新手入门指南

2026-07-22
388713 分钟
...

一、Cocos Creator 是什么

Cocos Creator 是一款专注于 2D 和 3D 游戏开发的引擎,由 Cocos 团队开发。它的核心理念是组件化开发——把游戏中的每个功能拆成独立的组件,像搭积木一样组合起来。

主要特点

  • 完全免费,支持发布到 Web、iOS、Android、桌面等多平台
  • 使用 TypeScript 编写脚本,对前端开发者非常友好
  • 编辑器可视化操作,所见即所得
  • 内置资源管理、动画系统、UI 系统、物理引擎等

适用场景:2D 游戏、小游戏、H5 游戏、UI 应用、简单的 3D 游戏

二、编辑器界面速览

打开 Cocos Creator 后,主要看到这几个面板:

面板位置用途
层级管理器左上显示场景中所有节点的父子关系
场景编辑器中间可视化编辑场景,拖拽、放置节点
属性检查器右侧查看和修改选中节点/组件的属性
资源管理器左下管理项目中的所有资源文件
控制台下方显示日志、报错信息

快捷键

  • Cmd/Ctrl + S:保存场景
  • Cmd/Ctrl + Z:撤销
  • Cmd/Ctrl + Shift + Z:重做
  • Delete:删除选中节点
  • Cmd/Ctrl + D:复制选中节点
  • Cmd/Ctrl + Shift + F:在场景中搜索节点

三、核心概念

3.1 场景(Scene)

场景就是游戏的一个画面或一个关卡。每个项目至少有一个场景。

  • 一个场景 = 一棵节点树
  • 游戏运行时,通过 director.loadScene() 切换场景
  • 场景文件以 .scene 格式存储在 assets 目录下

3.2 节点(Node)

节点是场景中的基本单元,所有东西都是节点。

节点可以做什么

  • 放置在场景中(如角色、背景、按钮)
  • 作为其他节点的父节点(形成父子层级)
  • 挂载组件(赋予节点具体功能)

节点属性

属性说明
position位置(x, y, z)
rotation旋转角度
scale缩放比例
anchor锚点(定位参考点)
opacity不透明度(0-255)
active是否激活(禁用后整个节点及其子节点不工作)

3.3 组件(Component)

组件是挂在节点上的功能模块。一个节点可以挂多个组件。

常见内置组件

组件用途常见使用场景
Sprite显示图片角色、背景、UI 图标
Label显示文字分数、对话、提示文字
Button按钮菜单按钮、交互按钮
Layout自动布局列表、网格排列
SpriteRenderer3D 精灵渲染3D 场景中的平面图片
MeshRenderer3D 网格渲染3D 模型显示
Camera摄像机视角控制
ParticleSystem2D2D 粒子火焰、烟雾、特效
ParticleSystem3D3D 粒子3D 特效
AudioSource音频播放背景音乐、音效
Collider2D2D 碰撞体碰撞检测
PhysicsSystem2D2D 物理系统重力、碰撞响应

3.4 资源(Asset)

项目中的所有文件都是资源,存放在 assets 目录下:

资源类型格式说明
脚本.tsTypeScript 代码
场景.scene游戏场景
预制体.prefab可复用的节点模板
纹理.png / .jpg图片资源
音频.mp3 / .wav音效和音乐
字体.ttf / .fnt文字字体
动画.anim动画片段
动画控制器.anim动画状态机

四、新建项目快速上手

4.1 创建项目

  1. 打开 Cocos Dashboard
  2. 点击「新建」
  3. 选择模板(推荐「Empty(2D)」或「Hello World」)
  4. 选择存储路径,点击创建

4.2 添加一个精灵(图片显示)

方法 1:直接拖拽

  1. 把图片资源拖到场景编辑器中
  2. 引擎自动创建一个带有 Sprite 组件的节点

方法 2:手动创建

  1. 在层级管理器右键 → 创建 → 2D 对象 → Sprite
  2. 在属性检查器中,把图片拖到 Sprite Frame 属性上

4.3 添加文字

  1. 在层级管理器右键 → 创建 → 2D 对象 → Label
  2. 在属性检查器中修改 String 属性输入文字
  3. 设置字体大小、颜色、对齐方式

4.4 添加按钮

  1. 在层级管理器右键 → 创建 → UI → Button
  2. 按钮节点包含一个子节点 Label(按钮文字)
  3. 在属性检查器中找到 Button 组件的 Click Events,点击 + 添加点击事件

五、TypeScript 脚本基础

5.1 创建脚本

  1. 在资源管理器右键 → 创建 → TypeScript → NewComponent
  2. 输入脚本名称(如 PlayerController
  3. 双击打开编辑(默认用 VS Code)

5.2 脚本结构

import { _decorator, Component, Node } from 'cc';
const { ccclass, property } = _decorator;

@ccclass('PlayerController')
export class PlayerController extends Component {

    // 在属性面板中暴露的变量
    @property
    speed: number = 100;

    // 节点加载完成时调用
    onLoad() {
        console.log('PlayerController 加载完成');
    }

    // 游戏运行时每帧调用
    update(dt: number) {
        // 每帧移动
    }
}

5.3 挂载脚本到节点

  1. 把脚本文件从资源管理器拖到场景中的节点上
  2. 或者在节点的属性检查器底部点「添加组件」,搜索脚本名称

5.4 获取其他节点/组件

// 获取同节点上的其他组件
const sprite = this.getComponent(Sprite);

// 通过名字获取子节点
const coin = this.node.getChildByName('Coin');

// 通过路径获取深层子节点
const hp = this.node.getChildByPath('UI/HP Bar');

// 通过类型获取子节点上的组件
const label = this.node.getChildByName('Score').getComponent(Label);

// 获取所有子节点
this.node.children.forEach(child => {
    console.log(child.name);
});

5.5 控制节点属性

// 修改位置
this.node.setPosition(100, 200, 0);

// 相对移动
const pos = this.node.position;
this.node.setPosition(pos.x + 10, pos.y, pos.z);

// 修改缩放
this.node.setScale(2, 2, 1);

// 修改旋转
this.node.setRotation(0, 0, 45);  // Z 轴旋转 45 度

// 修改透明度
this.node.opacity = 128;  // 半透明

// 显示/隐藏节点
this.node.active = false;  // 隐藏
this.node.active = true;   // 显示

六、常用功能模块

6.1 动画系统

Cocos Creator 内置了强大的动画编辑器。

创建动画

  1. 选中节点 → 属性检查器 → 点击 Animation 组件的 Add Animation
  2. 打开动画编辑器(窗口 → 动画 → Animation)
  3. 点击录制按钮,在不同时间点修改属性,自动生成关键帧

代码播放动画

import { Animation } from 'cc';

// 播放动画
this.getComponent(Animation).play('idle');

// 监听动画完成
this.getComponent(Animation).on(Animation.EventType.FINISHED, () => {
    console.log('动画播放完毕');
});

6.2 事件系统

Cocos Creator 使用事件机制实现节点间的通信。

发送事件

import { EventTarget } from 'cc';

// 自定义事件中心
const gameEventTarget = new EventTarget();

// 发送事件
gameEventTarget.emit('player-die', { score: 100 });

监听事件

// 监听自定义事件
gameEventTarget.on('player-die', (data) => {
    console.log('玩家死亡,分数:', data.score);
});

// 监听节点触摸事件
this.node.on(Node.EventType.TOUCH_START, (event) => {
    console.log('点击位置:', event.getLocation());
});

常用触摸事件

事件类型说明
TOUCH_START手指按下
TOUCH_MOVE手指移动
TOUCH_END手指抬起
TOUCH_CANCEL触摸被取消

6.3 定时器

// 延迟执行
this.scheduleOnce(() => {
    console.log('1 秒后执行');
}, 1);

// 重复执行
this.schedule(() => {
    console.log('每 0.5 秒执行一次');
}, 0.5);

// 执行 N 次
this.schedule(() => {
    console.log('执行 3 次');
}, 1, 3);

// 取消所有定时器
this.unscheduleAllCallbacks();

6.4 预制体(Prefab)

预制体是可复用的节点模板。比如你可以创建一个「子弹」预制体,然后在游戏运行时动态生成多个子弹实例。

创建预制体

  1. 在场景中设计好节点
  2. 把节点从层级管理器拖到资源管理器
  3. 自动保存为 .prefab 文件

动态实例化

import { instantiate, Prefab } from 'cc';

@property(Prefab)
bulletPrefab: Prefab = null;  // 在属性面板中拖入预制体

fire() {
    const bullet = instantiate(this.bulletPrefab);
    bullet.setPosition(this.node.position);
    this.node.parent.addChild(bullet);
}

6.5 UI 系统

Cocos Creator 的 UI 基于 Canvas 和 Widget(对齐)组件。

基本概念

  • Canvas:UI 的根节点,定义设计分辨率和适配策略
  • Widget:控制节点相对于父节点的对齐方式(上、下、左、右、居中)
  • Layout:自动排列子节点(水平、垂直、网格)

添加 UI 元素

  1. 创建 Canvas 节点(右键 → 创建 → UI → Canvas)
  2. 在 Canvas 下创建 UI 元素(按钮、文字、图片等)
  3. 用 Widget 组件设置对齐方式

常用 UI 组件

组件用途
Button可点击的按钮
Toggle开关/复选框
Slider滑动条
EditBox输入框
ScrollView可滚动的容器
RichText富文本(支持多种样式)
ProgressBar进度条

6.6 资源动态加载

import { resources, SpriteFrame, Sprite } from 'cc';

// 加载图片资源
resources.load('textures/hero', SpriteFrame, (err, asset) => {
    if (!err) {
        this.getComponent(Sprite).spriteFrame = asset;
    }
});

// 加载预制体
import { Prefab } from 'cc';
resources.load('prefabs/enemy', Prefab, (err, asset) => {
    if (!err) {
        const node = instantiate(asset);
        this.node.addChild(node);
    }
});

七、调试技巧

7.1 控制台日志

console.log('普通日志');
console.warn('警告信息');
console.error('错误信息');

在编辑器下方的「控制台」面板查看输出。

7.2 场景中的调试绘制

import { Graphics } from 'cc';

// 在节点上添加 Graphics 组件,然后绘制
const g = this.getComponent(Graphics);
g.clear();
g.strokeColor = new Color(255, 0, 0, 255);
g.strokeRect(0, 0, 100, 100);  // 画一个红色矩形

7.3 常见报错及解决

错误信息原因解决方法
Cannot read property of null访问了空引用检查节点/组件是否正确获取
Node is destroyed访问了已销毁的节点在 onDestroy 后不再访问该节点
Property not found组件属性未定义检查 @property 装饰器是否正确
Asset not found资源路径错误检查资源路径和拼写

八、项目结构建议

assets/
  ├── scenes/           # 场景文件
  ├── scripts/           # TypeScript 脚本
  │   ├── core/          # 核心逻辑GameManager
  │   ├── player/        # 玩家相关
  │   ├── enemy/         # 敌人相关
  │   ├── ui/            # UI 界面
  │   └── utils/         # 工具函数
  ├── prefabs/           # 预制体
  │   ├── bullets/       # 子弹
  │   ├── effects/       # 特效
  │   └── ui/            # UI 预制体
  ├── textures/          # 图片资源
  │   ├── characters/    # 角色图
  │   ├── tiles/         # 地图瓦片
  │   └── ui/            # UI 图片
  ├── audio/             # 音频资源
  │   ├── bgm/           # 背景音乐
  │   └── sfx/           # 音效
  └── animations/        # 动画资源

九、新手常见问题

Q:Cocos Creator 和 Unity 有什么区别?

对比项Cocos CreatorUnity
价格完全免费收费(收入超阈值)
语言TypeScriptC#
2D 能力非常强强(但不如专注 2D)
3D 能力支持但相对弱非常强
小游戏支持原生支持需要额外插件
社区规模国内较大全球最大

Q:我应该学 2D 还是 3D?

  • 新手建议从 2D 开始:概念更简单,学习曲线更平缓
  • 如果目标是做 3D 游戏,可以先用 2D 熟悉引擎,再转 3D
  • Cocos Creator 的 2D 能力是它的强项

Q:怎么发布游戏?

  1. 菜单 → 项目 → 构建发布
  2. 选择平台(Web Mobile / Android / iOS 等)
  3. 配置参数(包名、图标等)
  4. 点击构建 → 编译 → 运行

Q:遇到问题怎么找帮助?

十、学习路线建议

 1熟悉编辑器
  ├── 了解各面板功能
  ├── 学会创建节点添加组件
  └── 尝试修改节点属性

 2学习脚本基础
  ├── TypeScript 基础语法
  ├── 组件的生命周期
  └── 控制节点移动显示隐藏

 3常用功能
  ├── 事件系统触摸按钮点击
  ├── 动画系统
  └── UI 制作

 4综合实践
  ├── 做一个小游戏如打地鼠消消乐
  ├── 学习预制体和动态加载
  └── 尝试发布到 Web

十一、总结

Cocos Creator 的核心就是「节点 + 组件 + 脚本」:

  • 节点是场景中的实体
  • 组件赋予节点功能
  • 脚本自定义游戏逻辑

记住这几个关键点,你就已经入门了:

  • 所有东西都是节点,节点可以有子节点
  • 功能通过组件实现,一个节点可以挂多个组件
  • 脚本也是组件,挂在节点上运行
  • 生命周期回调(onLoad、start、update)控制执行时机
  • 预制体是可复用的节点模板

如果您觉得这篇文章有帮助,请点个赞吧~

分享文章

相关文章

更多文章 →
cocos2026-07-22
🎯 Cocos Creator 生命周期详解
Cocos Creator 生命周期详解 一、前言 Cocos Creator 作为主流的游戏开发引擎,其组件化架构的核心就是 生命周期回调函数 。理解这些回调的触发时机、执行顺序和使用场景,是写出高质量游戏逻辑的基础。 本文基于 Cocos Creator 3.x ,系统梳理从引擎启动到场景切换、从节点创建到销毁的完整生命周期。 二、组件生命周期回调总览 Cocos Creator 的生命周期回调按触发顺序排列如下: | 回调函数 |...
学习
cocos2025-10-11
🚀 cocos进阶语法
1\. 组件设计与脚本复用 在 Cocos Creator 中, 一切都是组件 。 你可以把通用逻辑封装成独立组件,实现模块化开发。 ✅ 建议 : 把“功能性逻辑”(移动、旋转、漂浮、点击反应等)做成通用组件,避免在业务逻辑脚本里重复写。 2\. 单例与全局管理器 大型项目通常需要全局控制器,比如音效、玩家数据、网络。 使用: ✅ 建议 : 使用“单例模式”集中管理音效、事件、UI、对象池等,减少节点层级耦合。 3\. 动画系统与状态机...
学习
cocos2025-09-23
📘 Cocos Creator 语法入门文档
📘 Cocos Creator 语法入门文档 1. 基础概念 Cocos Creator 使用 TypeScript/JavaScript 作为主要开发语言,游戏逻辑通常通过脚本来驱动。主要模块: 节点 (Node) :场景中的基本元素,可以理解为游戏对象。 组件 (Component) :附加到节点上的脚本/功能,比如渲染、物理、脚本逻辑。 场景 (Scene) :游戏运行的基本单位,包含多个节点。 资源 (Assets) :图片、...
学习
AI2026-09-01
Deep Agents 01:何为 Agent Harness,以及如何开始
1、本篇任务:完成一份多步骤、带证据的技术调研 普通客服 Agent 的问题短、工具少、输出即时。技术调研或编码任务会持续很久,产生计划、搜索结果、文件和中间结论。Deep Agents 在 LangChain/LangGraph 之上预装规划、虚拟文件系统、上下文压缩和子 Agent,适合这类开放任务。 本课让 Agent 比较两种向量数据库,并交付一份可验证报告。 2、什么时候需要 Deep Agent 满足以下两项以上再考虑:任务...
学习
AI2026-09-01
Deep Agents 02:子 Agent、虚拟文件系统与长期记忆
1、本篇任务:让主管只看结论,让子 Agent 处理细节 技术调研会产生几十次搜索和大量文件。如果全部进入主管上下文,真正的目标会被噪音淹没。本课用两个子 Agent: 收集证据, 检查结论;主管负责计划与最终合成。 2、什么时候委派,什么时候直接调用工具 适合委派:子任务有多步;需要专门提示或工具;会产生大量中间结果;只需返回有限结论。不适合:一步查询;主管需要全部中间上下文;协调成本超过任务本身。 3、配置专门子 Agent Pyt...
学习
AI2026-09-01
Deep Agents 03:生产化、Sandbox、权限与上线验收
1、本篇任务:让 Deep Agent 在隔离环境中分析代码 只读研究 Agent 风险有限;编码 Agent 需要读写文件、安装依赖和执行测试。本课不讲如何让模型写更漂亮的代码,只讲执行环境、权限、恢复和上线验收。 2、先做威胁模型 资产包括源代码、用户文件、云凭证、生产网络和发布权限;攻击入口包括用户消息、仓库内容、网页、依赖包、MCP 返回和命令输出。 Prompt injection 不是靠一句 system prompt 解决...
学习

评论

请登录后发表评论

去登录
加载评论中...

目录