Cocos Creator

Cocos Creator
Aholic~茜此篇章为了解并且对Unity有一定掌握能力的前提下,转战Cocos Creator的简单介绍。
新手入门
关于Cocos Creator
它是一个完整的游戏开发解决方案,包含了轻量高效的跨平台游戏引擎,以及能让你更快速开发游戏所需要的各种图形界面工具。
本质来说Cocos是和Unity极为相似的以脚本形式实现面向对象开发的一种游戏引擎。与Unity所依赖的C#不同,Cocos主要依赖于TypeScript(TS)语言作为脚本语言,起本质是从JavaScript演变而来,不过具备了面向对象的属性。
与Unity相比,Cocos Creator 是触控科技推出的轻量级跨平台游戏引擎,核心主打 2D 与轻量 3D 场景,深度适配移动端、Web 与国内小游戏生态。也就是说它更适合做跨平台小游戏,或者广告游戏的开发。但它的上手成本不算高,如果你能使用Unity,那么仅需要了解一下Cocos的一些本地API,就可以直接上手,编辑器方面与Unity大同小异。
Unity 转 Cocos
节点与组件
Cocos 的场景以节点(Node)为基础单位,节点之间以树状层级组织,通过挂载不同功能的组件(Component)来实现具体的表现和逻辑,这和 Unity 中 GameObject 挂载 Component 的设计完全一致。
| Unity 概念 | Cocos Creator 对应 | 核心说明 |
|---|---|---|
| GameObject | Node | 场景中的基础实体,承载变换属性与组件 |
| Component | Component | 挂载在节点上的功能脚本,实现具体逻辑 |
| Transform | Node.position / rotation / scale | 变换属性直接集成在节点上,无需单独组件 |
| Prefab | Prefab | 预制体概念、复用逻辑与 Unity 完全一致 |
| Scene | Scene | 场景作为内容容器,管理节点树与游戏逻辑 |
节点具备两个核心特性:一是子节点会跟随父节点进行变换,层级更新顺序逐级传递;二是同一个节点可以挂载多个不同功能的组件,以组合而非继承的方式扩展能力,这也是组件式开发的核心思想。
脚本语言
Cocos Creator 3.x 官方首选 TypeScript 作为脚本语言,这是和 Unity 最直观的差异,但二者的面向对象编程思路高度重合:
- 都支持类、继承、接口、泛型等完整的面向对象特性
- 都通过装饰器(C# 里的 Attribute / TS 里的 Decorator)标记脚本与属性
- 都以组件类的形式挂载到节点上运行
最大的区别在于执行机制:C# 在 Unity 中编译为 IL 原生执行,而 TS 最终运行在 JavaScript 虚拟机中,这也赋予了 Cocos 天然的动态执行能力,是其热更新特性的底层基础。
生命周期
Cocos Creator 为组件提供了完整的生命周期回调函数,执行顺序和设计目的与 Unity 高度匹配,只是命名略有差异。
onLoad
对应Unity中的Awake。
节点首次激活时触发,比如场景加载、节点被启用。此时场景内的其他节点、关联的资源数据都已准备就绪,永远在 start 之前执行,适合做脚本内部的初始化操作。
1 | import { _decorator, Component, Node } from 'cc'; |
start
对应Unity中的Start。
组件第一次启用时、在所有组件的 update 之前调用。通常用于需要等待所有组件 onLoad 都执行完毕后再启动的逻辑,比如依赖其他组件的初始化操作。
update(deltaTime: number)
对应Unity中的Update。
组件启用后每帧执行,参数 deltaTime 为上一帧到当前帧的时间间隔,用于处理帧同步的游戏逻辑、移动、状态检测等。
lateUpdate(deltaTime: number)
对应Unity中的LateUpdate。
在所有 update 执行完毕后调用,适合处理相机跟随、状态后处理等需要等待主逻辑执行完的操作。
onEnable / onDisable
对应Unity中的OnEnable / OnDisable。
组件被启用 / 禁用、节点激活 / 失活时触发,用于注册 / 注销事件、暂停 / 恢复逻辑。
onDestroy
对应Unity中的OnDestroy。
组件或节点被销毁时调用,用于清理资源、移除事件监听、释放引用。
资源管理
和 Unity 中 Resources.Load 的同步加载不同,Cocos Creator 的动态资源加载默认采用异步机制,避免大资源阻塞主线程,这也是 Unity 开发者上手最需要适应的差异点。
基础动态加载
Cocos 官方提供 resources.load 接口用于动态加载 assets/resources 目录下的资源,路径相对于 resources 文件夹,且不能包含文件扩展名。
1 | import { resources, SpriteFrame, instantiate, Prefab } from 'cc'; |
资源预加载
官方还提供了 resources.preload 接口用于提前预加载资源,后续调用 load 时会直接复用缓存内容,大幅缩短加载等待时间,适合关卡切换、场景预加载等场景。
与Unity的差异
- Unity 的
Resources.Load是同步调用,加载完成后直接返回资源;Cocos 采用回调 / 异步的方式,不阻塞主线程 - Cocos 的资源路径统一使用正斜杠,不支持反斜杠
- 动态加载的资源必须放在
assets/resources目录下,构建时会被统一打包管理
Cocos的优势
如果说概念和逻辑的相似性降低了上手门槛,那么以下几点就是 Cocos 相对于 Unity 的独特价值,也是国内大量团队选择它的核心原因。
小游戏生态全平台原生适配
Cocos 是目前对国内小游戏生态支持最完善的引擎,原生支持一键发布到微信小游戏、抖音小游戏、支付宝小游戏、鸿蒙快应用等十余个国内主流平台。引擎底层针对各平台做了包体裁剪、启动优化、API 兼容适配,开发者几乎不用做平台定制开发,就能快速上线多端小游戏。
相比之下,Unity 发布小游戏需要借助第三方转换工具,性能、包体、兼容性都存在明显差距。
极致轻量化与包体优势
引擎内核精简,支持功能模块按需裁剪,空项目打包后体积仅几兆大小。2D 休闲游戏打包成 APK 通常只有十几兆,Web 端和小游戏端的首屏启动速度优势显著,这对于买量投放、广告游戏、轻度休闲游戏来说,直接影响用户转化和留存数据。
完全开源,底层可控
Cocos Creator 引擎核心完全开源,开发者可以根据项目需求深度定制渲染管线、物理系统、资源管理等底层模块。对于有技术能力的团队,这意味着更高的性能上限和更强的问题解决能力,不用像闭源引擎那样受限于官方的更新节奏。
快速上手
1 | import { _decorator, Component, Vec3, input, Input, EventKeyboard, KeyCode } from 'cc'; |
上面的这个脚本是一个简单的节点移动。使用方式和 Unity 完全一致:将脚本保存后拖到节点上,运行场景即可生效。
总的来说:如果你正在做小游戏、休闲手游这类项目,或者想降低引擎授权成本、提升项目迭代效率,Cocos Creator 绝对是一个值得投入的选择。













