Cocos Creator 2.3.3 更新说明,效率即是一切!
2020.04.10 by Cocos
品牌新闻

效率即是一切,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 开始,定制安卓原生工程时,需注意 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() 释放,否则引擎无法知道何时回收这类节点的内存,会导致内存泄露。

如原先通过 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 哦~

码上关注,了解更多精彩~