查看原文
其他

Cocos Creator 2.3.1 更新说明

Jare COCOS 2022-06-10

Hi,各位开发者,很高兴跟大家见面。在我们发布了 Cocos Creator 2.3.0 之后,得到了许多积极的反馈和建议,感谢大家的支持!


此次更新的 2.3.1 版本旨在修复缺陷和提升产品稳定性,建议所有的 2.3 开发者升级。


以下是 2.3.1 完整更新说明。为保证阅读体验,[参考链接]统一放在文末哦~

更新说明 


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 版本进行使用



升级提示


Cocos Creator 对项目的升级操作是不可逆的,请在升级前提交或备份旧版项目。绝大多数项目通常都能自动升级,但因为项目难免存在特殊性,开发者应该根据项目自身需求,提前对新版本引擎进行试用和评估。此外,出于稳定性考虑,建议即将上线或已上线的项目谨慎升级。

以下是升级说明,如果开发者们在升级中遇到困难,欢迎向我们反馈,我们会尽力协助。

1. 从 < 2.3.0 版本升级

如果预览时出现加载警告“Can not find module.module for path…”


这个警告可能是因为升级到 2.3 后,对脚本 import/require 的路径大小写检测变严格了。在旧版本中,如果路径的大小写和实际文件不符,可能会有潜在的一些错误隐患,但不一定会表现出来。我们建议遇到这个问题的项目对相应大小写进行修正。


从 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. 从 2.0 - 2.3.0 版本升级
  • 从 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 管理节点,则不受影响

4. 从 < 2.0 版本升级
  • 打开 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 游戏开发体验。


参考链接 

[#87]
https://github.com/cocos-creator-packages/adapters/pull/87

[文档]:
https://docs.cocos.com/creator/manual/zh/publish/publish-pc-wechatgame.html

[@大城小胖]:
https://weibo.com/finscn?is_hot=1

[#6157]:
https://github.com/cocos-creator/engine/pull/6157

[#6173]:
https://github.com/cocos-creator/engine/pull/6173

[#6201]:
https://github.com/cocos-creator/engine/pull/6201

[#6227]:
https://github.com/cocos-creator/engine/pull/6227

[#6233]:
https://github.com/cocos-creator/engine/pull/6233

[#6231]:
https://github.com/cocos-creator/engine/pull/6231

[#6269]:
https://github.com/cocos-creator/engine/pull/6269

[#6186]:
https://github.com/cocos-creator/engine/pull/6186

[#250]:
https://github.com/cocos-creator-packages/jsb-adapter/pull/250

[#249]:
https://github.com/cocos-creator-packages/jsb-adapter/pull/249

[#6224]:
https://github.com/cocos-creator/engine/pull/6224

[#2186]:
https://github.com/cocos-creator/cocos2d-x-lite/pull/2186

[#2215]:
https://github.com/cocos-creator/cocos2d-x-lite/pull/2215

[#2137]:
https://github.com/cocos-creator/cocos2d-x-lite/pull/2137

[#2142]:
https://github.com/cocos-creator/cocos2d-x-lite/pull/2142

[#2129]:
https://github.com/cocos-creator/cocos2d-x-lite/pull/2129

[#6198]:
https://github.com/cocos-creator/engine/pull/6198

[#6221]:
https://github.com/cocos-creator/engine/pull/6221

[《1.10.0 资源升级指南》]:
https://docs.cocos.com/creator/manual/zh/release-notes/raw-asset-migration.html

[《2.0.0 升级文档》]:
https://docs.cocos.com/creator/manual/zh/release-notes/upgrade-guide-v2.0.html


点击“阅读原文”前往Cocos官网下载更新。

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存