Cocos Creator 2.3.1 更新说明
Hi,各位开发者,很高兴跟大家见面。在我们发布了 Cocos Creator 2.3.0 之后,得到了许多积极的反馈和建议,感谢大家的支持!
此次更新的 2.3.1 版本旨在修复缺陷和提升产品稳定性,建议所有的 2.3 开发者升级。
1. Improvements
适配微信 PC 版小游戏 #87 ,使用方法详见 文档
进一步优化小游戏与 Web 平台上的引擎包体大小
完善 API 文档与 creator.d.ts 声明
增加 TiledMap Object 图层 Top-Down 和 Manual 渲染顺序的支持(感谢@大城小胖)#6157
增加 TiledMap Object 图层水平和垂直翻转的支持 #6157
支持使用 Backspace 按键删除场景中的节点
锁定内置资源,避免误操作
禁用原生非 JS 线程中的 evalString 调用,避免 V8 崩溃
2. Editor
修复升级到 2.3 后无法使用 npm 模块的问题
修复升级到 2.3 后 VS Code 无法断点的问题
修复升级到 2.3 后可能导致脚本循环依赖,出现 “TypeError: Object prototype may only be an Object or null” 报错的问题
修复在 Windows 平台仅构建脚本时,插件路径可能错误的问题(感谢 shengyong)
修复部分模型导入后节点显示不全的问题(感谢 C_Tsang)
修复 Spine 二进制文件在微信小游戏上无法上传的问题
修复构建时小米生成到默认路径的签名证书会被删除的问题
3. Engine
[Core] 优化动态创建 Label 节点时的初始化过程 #6173
[Core] 修复动态修改 Prefab 中的材质将导致其它相同材质也被改变的问题 #6201
[Core] 修复高频次重复设置 zIndex 可能导致的渲染层级问题(感谢@大城小胖) #6227
[Core] 修复 Canvas 组件勾选 fitWidth 后 EditBox 输入框错位的问题 #6233
[Core] 修复 RichText 在 active 为 false 的状态下修改内容,排版错误的问题 #6231
[Core] 修复 3D 粒子第一次 Burst 的显示数量不正确的问题 #6269
[原生] 修复在事件回调中销毁 Mask 导致的报错 #6186
[原生] 修复材质切换 Technique 无效的问题(感谢 inkfood.com) #250
[原生] 修复窗口大小改变后获取到的宽高不正确的问题 #249
[原生] 修复窗口大小改变后 Widget 未更新的问题 #6224
[原生] 修复 JS 原生调试无法使用 Performance 和 Profiler 的问题 #2186
[原生] 修复 Editbox 点击软键盘收起三角,没有触发编辑完成事件的问题
[原生] 修复游戏 restart 时的内存泄漏问题 #2215
[原生] 修复 Android 音频模块在进入后台后会阻止设备进入省电模式的问题 #2137
[原生] 修复 Android 分屏时的窗口自适应问题 #2142
[原生] 修复 Windows 平台 restart 之后窗口大小错误的问题 #2129
[HTML] 修复 safari 从后台回到游戏时音频不能播放的问题 #6198
[小游戏] 修复 Audio 没有被 destroy 的问题 #6221
4. KNOWN ISSUES
目前在 v2.3.1 中导入 Cocos Studio 项目时会出现报错,此问题将在 v2.3.2 版本修复。开发者如有需要的话可以临时先在旧版本编辑器中导入项目,然后再升级到 2.3.1 版本进行使用。
如果预览时出现加载警告“Can not find module.module for path…”
从 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 游戏在所有平台上前后台互相切换时,都会在内部自动暂停和恢复音频。 如果开发者之前有对这一块进行过定制,监听并执行了
从 2.3.0 开始,Canvas 组件不再负责将 Canvas 节点尺寸设为屏幕大小,此行为将结合 Widget 组件实现。为保证兼容性,2.0 项目升级后,Canvas 所在节点会自动添加 Widget 组件。(从 1.0 项目升级无此问题)
3. 从 < 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.NodePool 管理节点,则不受影响
打开 1.x 项目的话,场景等所有资源将会自动升级,代码如有警告或报错,可参考《1.10.0 资源升级指南》和《2.0.0 升级文档》进行调整。
以上就是此次更新的详细内容。
从 v2.0 用 3D 渲染器重写、v2.1 开放 3D 能力至今,Cocos Creator 缺失的 3D 能力已经在迭代中逐步补齐。我们希望能够帮助中小团队开发出惊艳的 3D 休闲项目,并且保留 Creator 做为 2D 引擎轻量高效的优势,这是现阶段 Cocos Creator 和 Cocos Creator 3D 的主要区别。
与此同时,与 3D 引擎更多模块的统一,也是 2D 和 3D 两个产品线完全融合的开始。在不久的将来,Cocos Creator 将会整合两个引擎的优点,提供卓越的 2D/3D 游戏开发体验。
点击“阅读原文”前往Cocos官网下载更新。