Cocos Creator v2.1.2 正式发布
2019.07.18 by Cocos
Cocos Creator 版本更新

自从 Cocos Creator 2.1.0 发布以来,经过了半年的更新迭代,版本已经趋于稳定,目前 2.1 的新增用户已经占据主流。因此我们计划减少 2.0 版本的后续维护力度,将分散的精力集中投入到后续发展中,力争将 Cocos Creator 打造成更加专注、开放、健康的开源平台。

本次更新的 v2.1.2 版本,不仅包含了常规的体验优化和缺陷修复,还着重优化了纯 2D 项目的包体,以及自动图集的生成尺寸,建议所有 v2.0 开发者升级。同时,该版本也合并了 v2.0.10 的所有改动,支持了小米快游戏即刻玩小游戏这两个全新平台。

详细的改动说明如下:

What's New

优化 2D 项目包体

根据之前公开的说明,为了加快迭代速度,我们一直将 v2.1 定位为一个 3D 先行版,所以 v2.1 对纯 2D 项目的照顾是有滞后的。这一点主要体现在对 3D 新增的模块切割得不够干净,导致纯 2D 项目的包中也会加入一些些没用到的代码片段。这并不符合我们的产品理念,所以我们之前还不建议 v2.0 项目全面升级。
此次发布的 v2.1.2 经过细致优化,顺利解决了这个包体问题。现在我们正式推荐所有 v2.0 项目升级到 v2.1.2,从 v2.0 升级上来的项目将默认剔除 3D 模块,确保不会对 2D 项目的包体、性能产生影响。如需增加 3D 支持请手动在"菜单 → 项目 → 项目设置 → 模块设置"中勾选 3D 模块。

支持小米快游戏

Cocos Creator 正式支持发布到小米快游戏,详细用法请查阅《发布到小米快游戏》。

支持即刻玩小游戏

Cocos Creator 正式支持发布到即刻玩小游戏平台,详细用法请查阅《发布到即刻玩小游戏》。

完善微信小游戏资源加载流程

  • 修复资源可能无法加载成功的问题(感谢 snow_storm 的反馈)[#97]
  • 优化缓存失败时的处理逻辑 [#98]
  • 修复远程图片多次加载失败后后续加载资源无回调的问题 [#96]
  • 避免超大 json 文件解析时引发的崩溃问题(感谢 canghai7789 的反馈)[#101]
  • 调整缓存间隔,降低对游戏帧率的影响 [#97]

编辑器改进

  • 完善自动图集算法,现在无需手动调节 max size 即可生成尺寸最小的图集
  • 完善 Windows 平台对多显示器的支持,现在编辑器启动时会自动检测窗口可见性,确保窗口能正常显示
  • 增加项目升级或降级前的警告信息,防止用户误操作
  • 在自带的范例工程中新增了 DragonBones 和 Spine 的换装 demo [#725]
  • 优化了编辑器对 GPU 设备的兼容性,减少因 WebGL 兼容性导致的误报
  • 改进了 Asset Watcher 机制,如果组件的某个 accessor(getset)的类型定义为资源数组,则当相应资源发生改变时,将会触发 setter 对整个数组进行重新设置

引擎改进

  • 微信小游戏上默认关闭 preserveDrawingBuffer,解决了游戏从后台切到前台会卡顿几秒的问题 [#4537]。(微信小游戏最初发布时必须启用 preserveDrawingBuffer,否则场景切换会黑屏)
  • 改善了 Label 原生平台上的定位准确性 [#4765] [#1764]
  • 优化 BMFont 渲染时的内存占用 [#4651]
  • 允许 Label 设为 BITMAP 模式后对文本再次进行修改(不过仍然不建议这么做,会造成额外的内存和性能开销)
  • Web 平台的 ttf 字体加载失败后的超时时间从 60s 缩短为 3s [#4536]
  • 在 Asset 上新增 url 属性用于获取当前资源的实际 url,开发者可直接调用平台的原生 API 来使用这些 url [#4536]

Bug Fixes

编辑器修复列表

  • 修复构建项目时有可能出现 “Cannot convert undefined or null to object” 报错的问题
  • 修复导入 plist 图集时,部分 Sprite 的 offset 会被取整导致的渲染问题
  • 修复 circle collider 的 gizmo 相关问题
  • 修复 VideoPlayer 和 WebView 在编辑器中显示不正确的问题
  • 修复渲染组件无法保存自定义材质的问题 [#4390]
  • 修复使用命令行编译脚本时的报错
  • 修复动画编辑模式下,场景编辑器不显示动画轨迹的问题
  • 修复第三方插件 reload 后,插件自带的 runtime-resource 无法在资源管理器中显示的问题
  • 修复自动图集中的图片后缀名为大写的 PNG 时项目可能构建失败的问题

引擎修复列表

  • 修复输入事件响应在个别情况下层级错误的问题 [#4522]
  • 修复 3D 节点的 z 设置无效的问题 [#4408]
  • 修复 3D GPU 骨骼数量未能正确判断,导致某些情况下模型可能不显示的问题 [#4772]
  • 修复释放远程图片释放失败的问题 [#4536]
  • 修复 v2.1.1 出现的 SpineDragonBones 渲染合批失效的问题 [#4645]
  • 修复 Spine 使用了 clipping 后出现的渲染问题 [#4744]
  • 修复 Label 使用 BITMAP 模式时,动态合图不生效的问题 [#4393]
  • 修复 Label 使用 CHAR 模式时,Label Outline 会发生裁剪的问题 [#4550] [#4807] [#4809]
  • 修复 PageView 动态添加页面时,滑动位置计算错误的问题 [#4556]
  • 修复 cc.tween 的值为 0 时可能无效果的问题 [#4790]
  • 修复射线检测返回的距离会受节点缩放影响的问题 [#4562]
  • 修复重新开始游戏时,内建资源会被清空的问题 [#4509]
  • 修复项目从 2.0 或更早的版本直接升级上来后,Rotate 相关的 Action 朝向会发生错误的问题
  • 修复原生平台 Label 渲染性能下降的问题 [#1765] [#143]
  • 修复原生平台上如果先渲染骨骼少的 3D 模型再渲染骨骼多的模型会渲染错误的问题 [#4473]
  • 修复原生平台执行 cc.game.end() 之后如果仍有资源在后台下载将会引起崩溃的问题 [#1763]
  • 修复原生平台上 Spine 资源频繁加载、卸载引发的崩溃问题 [#1758]
  • 修复原生平台子包内的脚本不会加密为 jsc 文件的问题
  • 修复 Windows 平台 Label 文字大小不一致的问题 [#1766]
  • 修复 2.1 版本后在某些浏览器上会报的 WebGL 兼容性错误的问题 [#4394]
  • 修复 Web 平台 EditBox 遮挡其他 UI 控件触摸事件的问题(把默认的 stayOnTop 改为 unStayOnTop)[#4705]
  • 修复 Web 移动端上 EditBox 收起软键盘时,多次适配 Canvas 尺寸的问题 [#4705]
  • 修复 Web 平台 EditBox 多行输入时 placeholder 显示不正确的问题 [#4705]
  • 修复 WebAudio 设置音量可能不会立即生效的问题 [#4767]
  • 修复 IE 11 的兼容性问题 [#4659] [#4701]
  • 修复 iOS 微信浏览器上 EditBox 收起软键盘后触摸区域错位的问题 [#4705]
  • 修复 Facebook Live SDK 逻辑异常的问题
  • 修复微信小游戏在 iOS 上音频可能无法重新播放的问题 [#102] [#107]
  • 修复微信小游戏上背景音乐无法停止的问题 [#4793]
  • 修复微信小游戏接听电话之后,音频不再继续播放的问题 [#4757]
  • 修复微信小游戏开放域中不支持 Button Gray Effect 导致的报错 [#4474]
  • 修复微信小游戏开放域中不支持 WebGL 导致的报错 [#4748]
  • 修复 2.1.1 版本中调用微信小游戏 subContextView.update() 无法更新开放域贴图的问题 [#4721]

从 v2.0.0 用 3D 渲染器重写底层至今,Cocos Creator 经过多个版本的稳步迭代,终于进化成了一款能无损兼顾纯 2D 和 3D 两种项目类型的游戏引擎。将来 Cocos Creator 仍会秉承“2D 优先”的理念,继续死磕 2D 游戏开发体验及基础性能,逐步引入那些适合融入 2D 游戏的 3D 特性,陪伴 2D 游戏团队共同成长。

值得一提的是,近期发布的 Cocos Creator 3D Beta,是一套独立于 Cocos Creator 2.1 的全新产品线,和目前 2.1 新增的 3D 功能在定位上有明显区别。Cocos Creator 3D 融合了 Cocos 在 3D 领域多年来的探索和积累,立足于 3D 次世代引擎的长远发展,会更加适用于对 3D 表现力有高级需求的 3D 开发团队。