查看原文
其他

Cocos Creator 2.3.3 更新说明,效率即是一切!

Santy Wang COCOS 2022-06-10

效率即是一切,Cocos Creator 2.3.3 正式版来啦!本次更新带来了更多新的特性,优化了性能以及提升了稳定性,希望能为广大开发者们保驾护航。建议所有开发者升级哦!


以下是 Cocos Creator v2.3.3 完整更新说明。为保证阅读体验,[参考链接]统一放在文末。


What's New  


支持 PCF 软阴影


从 2.3.3 开始,Light 组件可以设置阴影类型为 SOFT_PCF3X3 或 SOFT_PCF5X5 来开启软阴影。开启后阴影就不会有硬边缘,效果更加柔和自然。




支持 Sprite 在 TILED 模式下使用九宫格缩放


从 2.3.3 开始,在 tiled 模式下如果 SpriteFrame 包含九宫格配置,平铺时将保持九宫格的四周宽度不变,只平铺中心部分。



提升网页预览时的加载速度


为了进一步提升开发效率,我们优化了网页预览时的脚本加载速度。不论是对引擎还是项目中的代码,载入速度都获得了提升。特别是在开启自定义引擎,或者使用手机扫码预览时,开发者都能得到更顺畅的体验。


Engine  


  • [Core] 修复单点触摸的情况下,触摸时隐藏节点将无法触发触摸事件的问题 [6395]

  • [Core] 修复场景开启资源延迟加载时,AudioSource 组件设置 Play On Load 无效的问题 [6412]

  • [Core] 修复 Spine 资源如果没有设置 defaultSkin 将渲染错误的问题 [6432]

  • [Core] 修复 Label 使用 BITMAP 模式下字符串为空时的警告 [6315]

  • [Core] 修复 RichText 无法输入单个尖括号文本的问题 [6314]

  • [Core] 修复 VideoPlayer 在不同平台获取到的当前时间可能不一致的问题 [6360]

  • [Tween] Tween 增加 stopAll、stopAllByTag、stopAllByTarget 等接口,方便对播放进行控制 [6338]

  • [Tween] 增加 bezierTo、bezierBy、flipX、flipY、blink 接口 [6327]

  • [Tween] 优化 Tween.to、Tween.by 的 API 代码智能提示,可以智能展示 target 属性

  • [3D] 增加 Node.forward、Node.right、Node.up API 用于获取节点在世界坐标系中的各个方向 [6287]

  • [3D] 修复 Sprite 节点切换 3D 节点设置时可能渲染错误的问题 [2335]

  • [3D] 修复 Node.eulerAngles 变化时,没有触发 ROTATION_CHANGED 事件的问题 [6325]

  • [3D] 修复 cc.Rotate3DBy 旋转不正确的问题 [6377]

  • [3D] 修复内置 Effect 中顶点切线转换到世界坐标系中计算错误的问题 [6358]

  • [3D] 修复 Mesh 设置的顶点数量超过原有数量时数据失效的问题 [6359]


Native 


  • 修复原生 SocketIO 在服务器关闭时发起请求可能出错的问题 [2338]

  • 修复 jsb.fileUtils.listFilesRecursively 返回值不正确的问题 [2337]

  • 修复 Android 设备 cc.sys.getSafeAreaRect 计算错误的问题 [2145]

  • 修复原生平台 Label 使用 emoji 后换行效果不正确的问题 [6353]

  • 修复原生平台 Graphic 如顶点过多将无法绘制的问题 [1935]

  • 修复 Windows 与 Mac 平台初始化阶段获取到错误的 devicePixelRatio 的问题 [2309]

  • 修复 3D 粒子在原生平台没有开启 TrailModule 时的拖尾材质报错 [6413]


Mini Game  


  • 适配 PC 微信小游戏数字键盘按键 [98]

  • 修复 OPPO 快游戏 Label 文字顶部被截断的问题 [6441]


Web  


  • 修复屏幕 resize 之后,EditBox 输入框显示错位的问题 [6347]

  • 修复移动端键盘拉起状态按钮不响应触摸事件的问题 [6337]

  • 修复在 iOS 的 UC 浏览器上 EditBox 编辑结束后界面适配不正确的问题 [6471]

  • 修复百度浏览器 VideoPlayer 在输入文字后被隐藏的问题


Editor


  • 支持在属性面板上展示网格的 attributes 信息

  • 增加对项目脚本中 require 路径的大小写校验

  • 修复在编辑器中预览粒子时,出现块状物遮挡的问题

  • 修复组件 @menu 装饰器无效的问题

  • 修复 Cocos Dashboard 设置语言后,编辑器无法打开的问题

  • 修复编辑器中有时会出现一个进度条的问题

  • 修复属性面板在多选节点时,点击 3D 切换按钮无效的问题

  • 修复导入 ccs 工程出现报错的问题

  • 修复编辑器内删除 3D 粒子材质时报错的问题

  • 修复添加录制动画编辑器时,动画剪辑与节点重命名无效的问题

  • 修复动画编辑器对摄像机 backgroundColor 做动画时出现报错的问题

  • 修复脚本报错后删除脚本仍无法清除控制台报错的问题

  • 修复自定义组件菜单没有按字母排序的问题

  • 修复粘贴菜单在没有选中节点的时候无效的问题

  • 修复材质删除 texture 属性后出错的问题

  • 修复 EditBox 节点在属性面板中选择 Reset All 菜单项后报错的问题

  • 修复模型中有相同名字材质会导致导入失败的问题

  • 修复设置自动同步后,Prefab 删除子节点时无法自动同步到原始的 Prefab 的问题

  • 修复使用错误的自定义引擎会导致编辑器无法启动的问题


升级提示


Cocos Creator 对项目的升级操作是不可逆的,请在升级前提交或备份旧版项目。绝大多数项目通常都能自动升级,但因为项目难免存在特殊性,开发者应该根据项目自身需求,提前对新版本引擎进行试用和评估。此外,出于稳定性考虑,建议即将上线或已上线的项目谨慎升级。以下是升级说明,如果开发者们在升级中遇到困难,欢迎向我们反馈,我们会尽力协助。


从 < 2.3.3 版本升级


  • Effect 中的 CCTexture2D,CCTexture2DRGB 方法已被废弃,请改用 CCTexture,CCTextureRGB

  • Vec3.FRONT 已被废弃,请改用 Vec3.FORWARD


从 < 2.3.0 版本升级


从 2.3.0 开始,定制安卓原生工程时,需注意 AndroidAndroid 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 升级文档]进行调整。


 


以上就是此次更新的详细内容

戳“阅读原文”前往官网下载更新

也欢迎小伙伴们继续通过

留言评论、论坛、GitHub、Cocos 企业服务

等渠道向我们提交使用反馈哦

放空老师的 3D 官方视频教程已更新至11P

感兴趣的童鞋可以移步 B 站首页

给放空老师打 call 哦~



参考链接 

[6395]

https://github.com/cocos-creator/engine/pull/6395

[6412]

https://github.com/cocos-creator/engine/pull/6412

[6432]

https://github.com/cocos-creator/engine/pull/6432

[6315]

https://github.com/cocos-creator/engine/pull/6315

[6314]

https://github.com/cocos-creator/engine/pull/6314

[6360]

https://github.com/cocos-creator/engine/pull/6360

[6338]

https://github.com/cocos-creator/engine/pull/6338

[6327]

https://github.com/cocos-creator/engine/pull/6327

[6287]

https://github.com/cocos-creator/engine/pull/6287

[2335]

https://github.com/cocos-creator/cocos2d-x-lite/pull/2335

[6325]

https://github.com/cocos-creator/engine/pull/6325

[6377]

https://github.com/cocos-creator/engine/pull/6377

[6358]

https://github.com/cocos-creator/engine/pull/6358

[6359]

https://github.com/cocos-creator/engine/pull/6359

[2338]

https://github.com/cocos-creator/cocos2d-x-lite/pull/2338

[2337]

https://github.com/cocos-creator/cocos2d-x-lite/pull/2337

[2145]

https://github.com/cocos-creator/cocos2d-x-lite/pull/2145

[6353]

https://github.com/cocos-creator/engine/pull/6353

[1935]

https://github.com/cocos-creator/cocos2d-x-lite/pull/1935

[2309]

https://github.com/cocos-creator/cocos2d-x-lite/pull/2309

[6413]

https://github.com/cocos-creator/engine/pull/6413

[98]

https://github.com/cocos-creator-packages/adapters/pull/98

[6441]

https://github.com/cocos-creator/engine/pull/6441

[6347]

https://github.com/cocos-creator/engine/pull/6347

[6337]

https://github.com/cocos-creator/engine/pull/6337

[6471]

https://github.com/cocos-creator/engine/pull/6471

[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


【Cocos Creator】以往更新说明


Cocos Creator v2.3.2 全新 Launcher 效率飞起!

Cocos Creator v2.3.1 提升产品稳定性

Cocos Creator v2.3.0 与 3D 引擎更多模块的统一

Cocos Creator v2.2.1 优化原生平台渲染性能

Cocos Creator v2.2.0 大量功能增强与体验改进

Cocos Creator v2.1.3 优化体验

Cocos Creator v2.1.2 优化纯 2D 项目包体

Cocos Creator v2.1.1 新增 3D 场景编辑等功能

Cocos Creator v2.1.0 新增 3D 支持


【更多精彩】


ironSource Abby:畅谈出海买量变现闭环方法论

产品收入上不去,你该怎么办?

【更新至6P】Cocos Creator 3D 官方中文视频教程

为武汉游戏人点赞!3D《巅峰漂移》技术分享

深夜长谈:聊聊 Cocos Creator 3D 的未来

《江湖医馆》专访:用 Cocos Creator 开发原生游戏

我打辅助!安利一款不错的游戏数据工具
原生 3D 超休闲游戏《弹无虚发》是如何炼成的?


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

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