Cocos Creator 2.4.6 更新说明
Cocos Creator 2.4.6 今日发布。本次更新修复了一些已知问题。Cocos Creator 将持续优化性能,为开发者带来更好的使用体验!以下是详细更新内容。
重要更新
优化编辑器资源加载速度,当资源第一次导入后,后续再次打开编辑器,所需时间仅为之前版本的 50% 以下,极大优化启动速度,提升开发效率
优化编辑器构建时的卡顿问题,我们将引擎编译的过程移动到了 worker 中,不会阻塞主进程的执行,开发者可以在构建时,继续开发工作
优化 iOS 平台序列帧动画性能,在 iPhone 6s Plus 旧机型上最多能提升三倍性能[8528]
添加场景列表到预览工具栏上,可快速选择预览场景,而无需切换到对应场景,提升工作效率
Editor
修复每次构建后 Zip 文件的 Hash 值不一致的问题
修复拖动带有子类的节点到父类属性上无效的问题
修复点击属性面板上属性选项无法定位到层级面板上的节点的问题
修复灯光节点在移动时,出现 Gizmos 小方块偏移出节点外的问题
修复资源管理器重命名回车以后没有进入到选中状态的问题
修复 3D 粒子 Texture Animation 模块修改
numTilesX
和numTilesY
没有立即生效的问题修复 3D 粒子 Rotation 模块无法设置
separateAxes
, 修改 XY 旋转无效的问题修复 3D 粒子 Size 模块使用曲线时修改没有立即生效的问题
新增
VideoClip
类型,视频资源导入后自动识别为VideoClip
格式修复压缩纹理出现噪点的问题,感谢 大城小胖
修复内置 Unlit 材质 depthWrite 值不对的问题
修复富文本组件导致打开场景数据发生变化的问题[8903]
Engine
修复材质的 hash 值因为 uniform 的顺序导致计算不正确的问题[8823]
修复
sp.Skeleton.clearTrack
没有重置初始姿势的问题[8801]修复
cc.Color.fromHex
计算错误的问题[8762]新增
Node.setSelfGroupIndex
接口用于设置自身分组[8614],感谢大城小胖修复 Mark 组件使用精灵后勾选延迟加载后错误的问题[8264]
修复事件回调中触发其他事件导致事件丢失的问题[8276]
修复多次打开软键盘无法将游戏内容上推的问题[8374]
修复触摸节点,紧接着隐藏节点,释放触点后导致触摸事件全部失效的问题[8969]
新增
Animation.hasAnimationState
API 判断是否存在某个 AnimationState,感谢大城小胖
Mini Game
修复
cc.assetManager.cacheManager.clearLRU
调用报错的问题[234]
Breaking Change
cc.sys.isNative
在快游戏平台改为 false
升级提示
Cocos Creator 3.0 版本已经正式发布, 2.4 版本将做为 LTS(长期支持)版本,提供后续两年的持续更新。在2021年,2.4 将继续更新版本,提供缺陷修复和新的小游戏平台支持,保障大家的项目成功上线;在2022年我们还将为开发者持续提供 2.4 的关键问题修复,保障已上线的游戏平稳运营!因此,
现有的 2.x 项目可以安心继续开发,无需强制升级 3.0。
现有的 2.x 项目因项目需求如想升级到 3.x,可以使用 Creator 提供的 2.x 资源导入工具。此工具将支持旧项目资源完美导入,以及代码的辅助导入。代码辅助导入会把 js 转换成 ts,添加组件类型声明、属性声明及函数声明,组件在场景中的引用都会得到保留,并且函数内部的代码会以注释的形式导入进来,可以减轻开发者的升级难度。详细的升级说明请参考[升级指南]。
新项目则建议使用 3.0 版本开发,我们会不断优化 3.0 的开发体验和运行效率,支撑好 2D、3D 等不同品类的重度游戏顺利上线。
Cocos Creator 对项目的升级操作是不可逆的,请在升级前提交或备份旧版项目。绝大多数项目通常都能自动升级,但因为项目难免存在特殊性,开发者应该根据项目自身需求,提前对新版本引擎进行试用和评估。此外,出于稳定性考虑,建议即将上线或已上线的项目谨慎升级。以下是升级说明,如果开发者们在升级中遇到困难,欢迎向我们反馈,我们会尽力协助。
从 < 2.4.0 版本升级
cc.loader
已经不建议使用,请使用最新的cc.assetManager
来代替,请参考[资源管理模块升级指南]子包功能已升级为 Asset Bundle,请参考[资源分包升级指南]
调整了项目构建后的目录结构,调整了
BuildResults
的 API,如果你使用了编辑器插件获取编辑器构建结果,请参考[定制项目构建流程升级指南]从 1.10 开始废弃的
cc.RawAsset
已被正式移除,请使用cc.Asset
代替。由于 2.4 不再兼容原有 1.x 项目中对 RawAsset 类型的历史遗留用法,建议所有要升级到 2.4 的项目特别是从 1.9 版本一路升级上来的项目,先在任意的 1.10 ~ 2.3 版本中对编辑器编译代码时输出的所有警告或报错都正确处理完毕,再升级到 2.4。cc.Color.fromHex
已被废弃,请使用cc.Color.fromHEX
接口
从 < 2.3.3 版本升级
Effect 中的
CCTexture2D
,CCTexture2DRGB
方法已被废弃,请改用CCTexture
,CCTextureRGB
Vec3.FRONT
已被废弃,请改用Vec3.FORWARD
从 < 2.3.0 版本升级
从 2.3.0 开始,定制安卓原生工程时,需注意 Android 与 Android Instant 使用了同一个构建模板。
如果是 Android 平台单独使用的代码请放入
app/src
目录, 单独使用的第三方库请放入app/libs
目录。如果是 Android Instant 单独使用的代码和第三方库请分别放入
game/src
,game/libs
目录。如果是 Android 和 Android Instant 共用的代码和第三方库,请分别放入
proj.android-studio
根目录底下的src
目录和libs
目录。proj.android-studio
根目录底下jni/CocosAndroid.mk
,jni/ CocosApplication.mk
,主要用于配置引擎相关的配置,开发者的配置,建议 Android 放到app/jni/Android.mk
和app/jni/Application.mk
中,Android Instant 请放入game/jni/Android.mk
和game/jni/Application.mk
中。
此外,在 Cocos Creator 编译 Android 时会默认执行 assembleRelease/Debug
,编译 Android Instant 时会执行 instant:assembleRelease/Debug
。
如自定义了音频前后台切换时的暂停逻辑,升级到 2.3.0 后请移除。
目前 Creator 游戏在所有平台上前后台互相切换时,都会在内部自动暂停和恢复音频。如果开发者之前有对这一块进行过定制,监听并执行了 cc.audioEngine.pause()/resume()
之类的音频操作,可能会和引擎默认行为冲突。如果有遇到相关的音频问题,只需移除相应的定制代码即可。
从 2.0 - 2.3.0 版本升级
从 2.3.0 开始,Canvas 组件不再负责将 Canvas 节点尺寸设为屏幕大小,此行为将结合 Widget 组件实现。为保证兼容性,2.0 项目升级后,Canvas 所在节点会自动添加 Widget 组件。(从 1.x 项目升级无此问题)
从 < 2.2.0 版本升级
从 2.2.0 开始,我们强化了内存管理机制,现在要求用户通过代码动态创建且独立于场景节点树的 cc.Node
必须通过 destroy()
释放,否则引擎无法知道何时回收这类节点的内存,会导致内存泄露。
如原先手动从场景中移除的节点,在不需要用到的时候也需要统一
destroy()
:
// 假设 testNode 是场景中的某个节点,若之前被手动移出场景了,如
testNode.parent = null;
// 或者
testNode.removeFromParent(true);
// 或者
parentNode.removeChild(testNode);
// 若往后 testNode 还会再次用到,则无需手动 destroy 该节点
// 否则应该手动调用
testNode.destroy();
如原先通过
cc.removeSelf
这个 action 销毁节点,请改为使用cc.destroySelf
如原先通过
cc.NodePool
管理节点,则不受影响
从 2.2.0 开始,我们不再建议你使用节点的 Skew 功能。
Skew 通常用作在 2D 引擎中模拟 3D 效果,随着 Cocos Creator 对 3D 节点的深入支持,Skew 效果已经完全可以由 3D 节点来实现。所以为了统一使用体验,进一步优化引擎底层实现,我们废弃了 Skew 属性。不过我们依旧会保留一段时间内的向下兼容,开发者可在旧项目中延续原有做法。后续我们将进一步完善兼容方式和升级案例,择机正式移除 Skew 功能。
从 < 2.0 版本升级
打开 1.x 项目的话,场景等所有资源将会自动升级,代码中的废弃接口从 2.3.3 开始将会在保持兼容的基础上同步输出报错。升级方式可参考《1.10 资源升级指南》和《2.0 升级文档》进行调整。
点击文末【阅读原文】前往官网下载最新版本,欢迎大家使用与体验,再次感谢各位开发者的支持!
参考链接
[升级指南]
https://docs.cocos.com/creator/3.0/manual/zh/release-notes/upgrade-guide-v3.0.html
[资源管理模块升级指南]
https://docs.cocos.com/creator/manual/zh/release-notes/asset-manager-upgrade-guide.html
[资源分包升级指南]
https://docs.cocos.com/creator/manual/zh/release-notes/subpackage-upgrade-guide.html
[定制项目构建流程升级指南]
https://docs.cocos.com/creator/manual/zh/release-notes/build-extend-upgrade-guide.html
[1.10 资源升级指南]
https://docs.cocos.com/creator/manual/zh/release-notes/raw-asset-migration.html
[2.0 升级指南]
https://docs.cocos.com/creator/manual/zh/release-notes/upgrade-guide-v2.0.html