
引言
哈喽大家好,我是亿元程序员。

合集1.0刚发布的时候,就收到过小伙伴的私信:

我盯着这条消息愣了半天。
心里第一反应是 :Cocos都4.0了,3.8也迭代了这么久了,怎么还有人在用2.x?

但紧接着第二条、第三条、第十条类似的私信陆陆续续冒出来,我才意识到这并不是偶然。

于是 我做了一件挺"反潮流"的事:把原本基于CocosCreator3.8.7做的整套合集1.0 ,硬生生搬回了2.4。
今天这篇文章想聊两件事:
- 为什么Cocos都4.0了还有人用2.x?
- 3.x项目移植2.x有哪些差异?
合集1.0的2.x版可在文末获取,小伙伴们自行前往。
一、先聊聊第一个"扎心"的问题
为什么Cocos都4.0了还有人用2.x?
1.老项目迁移成本太高
这是最主要的原因,很多公司的项目:
- 已经上线运营多年
- 代码量几十万甚至上百万行的屎山级别
- 已购买插件、编辑器扩展
从2.x升级到3.x/4.x并不是简单修改几行代码。
举个栗子:
| 2.x | 3.x+ |
|---|---|
| cc.Class | ES6 Class |
| cc.Node | API变化较大 |
| 2D架构 | 3D架构 |
| 全局cc | 模块化导入 |
很多项目升级后:
- UI错位
- Shader失效
- 插件失效
- 原生工程重配
可能需要几个月开发时间,对于已经赚钱的项目来说:
没有收益的重构,老板通常不会批准。
2.2D项目用2.x已经足够
很多卡牌游戏、老虎机、捕鱼、消除类游戏,它们不需要3D能力。
2.4已经能满足需求。
你的很多项目 (老虎机、刮刮乐、UI玩法等)其实用2.4.x也完全能做。
所以很多公司想法是:
能赚钱就别动。
3. 2.x生态非常成熟
目前国内很多:
- 插件
- 开源项目
- 教程
- 商业框架
都依然是 基于2.4.x。
大家 经常逛商城的,应该能知道商城上一大半都还是2.x的插件和源码。
二、3.x项目移植2.x有哪些差异?
好 ,聊完"为什么" ,现在聊"怎么搬"。
1.对比
先把两个引擎放一起对比一下,这不是版本升级,是两个引擎。
| 维度 | Cocos 2.x | Cocos 3.x |
|---|---|---|
| 场景文件 | .fire |
.scene |
| 脚本写法 | 全局 cc.xxx + @ccclass + export default |
import { ... } from 'cc' + @ccclass('Name') |
| 节点变换 | node.convertToNodeSpaceAR() |
挪到 UITransform 组件上 |
| 坐标 | Vec2 |
必须用 Vec3 |
| 颜色/透明度 | node.color / node.opacity |
拆成 Sprite.color / UIOpacity |
代码层最直观的对比:
2.x:

3.x:

2.Shader部分
虽然 .effect 文件名是一样的,YAML框架长得也差不多,但里面几乎每一行都要改,基本等同于重写。
首先是入口写法:
2.x:

3.x:

其次是 include路径全变:
2.x:

3.x:

最后就是合批策略:
3.x 的Sprite合批比2.x严苛得多:per-node修改uniform直接打断合批。
举个栗子:
我那个 拼图圆角
shader(round.effect),在3.x里不得不把每块拼图的位置/索引塞进a_color通道偷渡进去,而2.x直接set uniform就完了。
3.3D部分
由于合集1.0 中有一款是3D的拼模型游戏,为了保证合集的完整性,笔者也尝试了移植。

可是结果却非常扎心,不得不放弃:

所以合集1.0的2.x版并没有包含拼模型游戏。
三、所以这套2.x合集,适合谁?
直接说:
适合你的情况:
- 公司项目 卡在
2.x,想找现成的2.x案例代码参考 - 想做
2.x → 3.x的迁移,需要"同一玩法两个版本"的对照实战 - 接外包/学校项目 ,客户指定
2.x - 学习
2.x和3.x差异,两套源码对比看效率最高
不适合的情况:
- 完全新项目 ,请直接上
3.x或4.x - 需要 3D 玩法 ,
2.x做不出,请看3.x版本 - 追求最新引擎 ,这套合集
2.x版只做"等价复刻",不会硬塞新特性
结语
看完上面的内容 ,大家知道为什么Cocos都4.0了还有人用2.x了吗?
大家想想 ,现在Win都11了,还不是照样有用7的?
本文合集1.0的2.x版 可通过阅读原文获取,已经入手合集1.0 的小伙伴可以直接选择老客户复购版,享受优惠。
我是"亿元程序员",一位有着 8 年游戏行业经验的主程。 在游戏开发中,希望能给到您帮助,也希望通过您能帮助到大家。
实不相瞒,想要个赞 和在看 !请把该文章分享给你觉得有需要的其他小伙伴,谢谢!
推荐文章: