Cocos Creator v2.0.9 内测版发布帖(3-04 更新 rc.5)

注意:

  • 和所有软件一样,Cocos Creator 工程可以升级,原则上无法降级。也就是说旧版编辑器不能打开新版编辑器保存的工程,所以请大家使用测试版时 提前备份好自己的项目 ,以免无法回退!
  • 如果有自定义引擎,请先还原为编辑器内置引擎,否则版本不匹配将无法使用新版编辑器。
    所有测试版相关问题请在此回帖,不要另外发帖。本帖仅讨论新版相关问题,旧版本的问题请单独发贴。

本次发布的 2.0.9 版本新增了百度小游戏平台的支持,并且大幅优化了 DragonBones/Spine 在小游戏和 Web 平台上的性能。同时,我们进一步完善了引擎和编辑器的兼容性、稳定性,让大家能够获得更好的开发体验。良好的品质离不开细心的打磨,非常感谢各位开发者通过社区、GitHub、Cocos 技术服务等渠道反馈的意见。

以下是相对于 2.0.8 的改动说明:

#What’s New
##支持发布到百度小游戏平台

Cocos Creator 正式支持了发布到百度小游戏,详细用法请查阅 发布到百度小游戏平台

##提供极速模式,大幅改善 DragonBones 和 Spine 在小游戏和 Web 平台上的性能。

Dragonbones 参考文档: https://docs.cocos.com/creator/manual/zh/components/dragonbones.html
Spine 参考文档: https://docs.cocos.com/creator/manual/zh/components/spine.html

以下是性能测试结果:

测试的分值根据帧率换算而来,值越高性能越好。

以下是内存测试结果:

测试的分值越低表示内存占用越少。

还需要注意的是,极速模式,不支持动作融合,只支持动作开始和结束事件,适用于特效,npc 动画等。当场景中使用大量相同骨骼动画时,内存的改善会比较明显。

##提升微信小游戏运行性能

###优化了微信小游戏的资源加载速度
针对微信小游戏缓存资源耗时较长的问题,我们调整了资源缓存策略,将耗时较长的缓存操作自动延后(#72),缩短了资源加载所需的等待时间。
###大幅优化动态文本刷新性能
微信小游戏 7.0.3 版本开始,底层 texImage2D 调用耗时过长,导致 Label 渲染系统字体或 ttf 字体时,一旦文字内容发生改变就会影响性能。针对这个问题,我们在 Label 组件上新增了一个 Cache Mode 选项,开发者可设为 CHAR 模式进行优化。Cache Mode 可设置的值有:

  • NONE:默认值,Label 中的整段文本将生成一张位图。
  • BITMAP:选择后,Label 中的整段文本仍将生成一张位图,但是会尽量参与 动态合图。
    只要满足动态合图的要求,就会和动态合图中的其它 Sprite 或者 Label 合并 Draw Call。由于动态合图会占用更多内存,该模式只能用于文本不常更新的 Label。
    (该选项取代了原先的 Batch As Bitmap,旧项目如启用了 Batch As Bitmap 将自动升级为该选项)
  • CHAR:选择后,原理类似 BMFont,Label 将以“字”为单位将文本缓存到全局共享的位图中,相同字体样式和字号的每个字符将在全局共享一份缓存。能支持文本的频繁修改,对性能和内存最友好。
    不过目前该模式还存在如下限制,我们将在后续的版本中进行优化:
    • 该模式只能用于字体样式和字号固定,并且不会频繁出现巨量未使用过的字符的 Label。这是为了节约缓存,因为全局共享的位图尺寸为 2048*2048,并且不做清除操作,当位图被占满后新出现的字符将无法渲染。
    • Overflow 不支持 SHRINK
    • 不能参与动态合图(同样启用 CHAR 模式的多个 Label 在渲染顺序不被打断的情况下仍然能合并 Draw Call)

注:以上 Cache Mode 仅对系统字体或 ttf 字体有优化效果,而且这些优化对其它平台也有很好的效果。
##支持发布为 Android App Bundle

Cocos Creator 支持将安卓原生游戏发布为 App Bundle。将 App Bundle 提交到 Google Play 后,Google Play 将会根据玩家手机参数的差异,动态下载不同版本的 APK,达到减少游戏的包体的目的。详细用法请参考 TODO。

#编辑器改进

  • 在属性检查器中禁止设置节点宽高为负数

  • 在资源管理器中添加排序方式切换按钮,可选择按照名称或类型进行排序

  • 添加层级管理器的搜索清空按钮,清空后将跳转到之前选中的节点

  • 在层级管理器的下拉搜索框中添加通过 UUID 查找资源被引用情况的功能

  • 同步层级管理器和动画编辑器中的节点选中状态

  • 将默认停靠在属性检查器旁边的服务面板移动到构建发布窗口中

  • 完善粒子系统导入导出 plist 的支持

  • 构建项目时在系统任务栏中显示进度条

  • 重复导入 CCB 和 Cocos Studio 工程时将会覆盖原来的文件夹,不再保留多份
    #引擎改进

  • 优化了微信小游戏的资源加载速度 #72

  • 增加 jsb.copyTextToClipboard API,用于拷贝文本到剪贴板

  • 原生平台的模块裁剪不再剔除 XMLHttpRequest 模块

  • 升级 Android 构建工具配置 Gradle 至 4.10.3,plugin 至 3.2

  • 在 Android 8 中默认支持 http 协议 #1664

  • 升级 Spine 运行库到 3.6

  • 完善 VideoPlayer 组件在 X5 浏览器上的支持

  • 引入了全新的缓动 API:cc.tween,能提供更简洁的语法和更高的灵活性,详见 xxx
    #Bug Fixes
    ##编辑器修复列表

  • 修复动画编辑器无法使用在用户脚本上的问题

  • 修复自动图集不能打包到子包的问题

  • 修复命令行构建项目时,项目会直接生成到 build 目录下的问题

  • 修复命令行构建项目时不加载自定义插件的问题

  • 修复命令行构建项目时 excludeScenes 参数不生效的问题

  • 修复场景编辑器中的网格背景会穿透到某些半透明图片上方,导致颜色和运行时有一些差异的问题

  • 修复自动同步的 Prefab 在保存场景时个别情况下会提示无法保存引用的问题

  • 修复自定义构建插件在 “build-finished” 阶段获取 BuiltResults 中的子包资源时,资源所在的 nativePath 不正确的问题
    ##引擎修复列表

  • 修复场景显示对象非常多时会出现渲染错误的问题

  • 修复 Button 组件设置为 COLOR 模式后,所在节点颜色不生效的问题

  • 修复在 onLoad 之前设置 Button 的 interactable 为 false 会导致节点 scale 变为 0 的问题

  • 修复 Label 组件未激活就销毁时的报错

  • 修复 Label 在搭配 faceIn action 使用时可能会闪现的问题

  • 修复对 Particle 应用 action 会导致粒子发生偏移的问题

  • 修复 Particle 组件会重复解析 plist 中内嵌的 textureData 的问题

  • 修复加载 1.x 旧项目时会丢失场景中的部分 Particle 自定义数据的问题 #3885

  • 修复 ScrollView 的父节点 scale 为 0 时 ScrollView 布局异常的问题

  • 修复 DragonBones 如果包含声音文件,播放动画会报错的问题

  • 修复 DragonBones 骨骼包含多张纹理时,可能无法渲染的问题

  • 修复 DragonBones 的缓存上限未生效,导致缓存不会自动清空的问题

  • 修复 Mask 组件启用 inverted 后未更新点选检测(hit test)的问题

  • 修复调整节点 zIndex 后点选检测(hit test)区域可能未刷新的问题 #3895

  • 修复在微信小游戏子域中的某些场景中的字段会受到 MD5 干扰的问题

  • 修复原生平台上 WebSocket GC 时的潜在崩溃问题 #1681

  • 修复原生平台 Spine 切换父节点后会导致闪退和渲染异常的问题 #1659

  • 修复 iOS 原生平台 cc.log 的过程中可能会崩溃的问题 #1687

  • 修复 Android 平台上 XMLHTTPRequest 获取不到 statusText 时引发的崩溃问题 #1629

  • 修复 Android 无法播放远程视频的问题 #1661

  • 修复原生和 Web 平台无法加载分包中的资源的问题

  • 修复 Vec3 和 Rect 反序列化结果可能不正确的问题
    #Known Issues

  • 目前在百度小游戏平台上,还存在一些问题,我们正在尽快配合百度进行修复。

    • 安卓上存在音频兼容性问题(预计手机百度 11.6 版本修复)
    • iOS 上重力感应方向变反
    • XMLHttpRequest 不支持 timeout 回调
    • 安卓上远程加载资源会报错

v2.0.9-rc.5(Windows 版 | Mac 版

  • 将 Android 最低的 Target/Compile SDK Version 从 16 升级至 23,Min SDK Version 仍然是 16

以下修复的是 2.0.9 测试版的新增问题:

  • 修复了深色文本缩放后可能会模糊的问题
  • 修复 QQ 玩一玩文本渲染异常的问题
  • 修复原生平台 WebView 失效问题
  • 修复原生平台 NDK 版本兼容性问题

v2.0.9-rc.4(Windows 版 | Mac 版

构建微信小游戏时,默认关闭微信开发者工具的代码混淆功能,采用 Creator 自带的混淆功能
修复自定义引擎时,项目构建可能出现的无效报错
调整代码自动编译策略,防止插件在修改项目脚本时导入失败
在 RigidBody 组件上添加 Awake On Load 属性,用来设置刚体是否默认唤醒,默认为 True

以下修复的是 2.0.9 测试版的新增问题:
修复新建场景或 Prefab 时的报错
修复 Label 组件的相关报错
修复spine动画第一帧渲染不正确的问题


v2.0.9-rc.2(Windows 版 | Mac 版

修复加载 1.x 旧项目时会丢失 Spine 的 premultipliedAlpha 设置的问题
新增 Label 的 cacheMode 选项,可设置值为 BITMAP 或者 CHAR,BITMAP 相当于原有的 batchAsBitmapCHAR 则提供了更高的渲染性能,但是目前不支持 SHRINK 字号。
不在 Chrome 69 以上版本中禁用动态图集

以下修复的是 2.0.9 测试版的新增问题:
重新修复加载 1.x 旧项目时会丢失场景中的部分 Particle 自定义数据的问题
修复 Label 的锯齿、下划线颜色有关问题
修复 Button 缩放相关问题


v2.0.9-beta.4(Windows 版 | Mac 版

修复更改节点层级关系后 Physics Collider 的 Gizmo 显示异常的问题
移除除了 Sprite 和 Particle 以外的其它渲染组件上的 Blend Factor 属性
修复不同 shader 使用同一个 uniform 名称,但是类型不同时获取数据不对的问题
修复 iOS 原生平台 cc.log 的过程中可能会崩溃的问题 #1687

以下修复的是 2.0.9 测试版的新增问题:

支持百度小游戏 1.4.1 基础库
修复属性检查器不显示 Label Component 的问题
修复动态加载的 DragonBones 不渲染的问题
修复百度开放域 canvas 渲染 label 默认为白色的问题
修复原生平台上释放 DragonBones 资源时,会抛出异常的问题


v2.0.9-beta.3(Windows 版 | Mac 版


良好的品质离不开细心的打磨,非常感谢各位开发者通过社区、GitHub、Cocos 技术服务等渠道反馈的意见。相关问题请反馈到本帖下!本帖仅讨论新版相关问题,旧版本的问题请单独发贴。

版本测试流程:alpha => beta => rc => 正式版
alpha: 开发过程中的技术预览版,功能还在开发当中,只经过冒烟测试,未经测试团队验证
beta: 功能接近完整的测试版
rc: 发行候选版本,原则上避免进行任何改动。如果用户没反馈什么大的问题,将直接修改文件名作为正式版

7赞

2.0.9是不是不支持手动压缩纹理?必须上2.1?

占个楼 终于更新了 我还以为春节发版本的跟小姨子跑路了

这个大赞,可是文档在哪:joy:

2赞

同问 cc.tween 的文档在哪里?

1赞

看表现的话是否dragbones比spine性能要好

正式版下周发吗?

https://forum.cocos.com/t/ttf/73281?u=85265656
刚刚试着打包了~ ios ttf字体没效果 依旧没修复。

占楼,版本跟进

增加 jsb.copyTextToClipboard API,用于拷贝文本到剪贴板
这个自己实现了,官方总是姗姗来迟。

这是纯2d的最后一个版本了么

你怎么会有这样的错觉的?我感觉至少也要到2.0.11

分享点赞,年薪百万!!
支持一波。、

可以有2.0.10的吧

mask嵌套点击有问题,scrollview里面加一个带mask的节点,按钮不在可视区域也可以点击:

spine的complete事件返回的loopCount错误

能详细下微信小游戏卡顿方面改善程度吗

粗略测试了一下,粒子效果相比2.0.8有一些区别

龙骨启用极速模式,报错