Cocos Creator 2.1.3 正式发布

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

本次更新的 v2.1.3 版本,旨在优化体验和修复缺陷,建议所有开发中的 v2.0、v2.1 项目升级。

详细的改动说明如下:

What’s New

支持 iOS 13

为了支持即将发布的 iOS 13 操作系统,我们将 iOS 原生平台上的 VideoPlayer 底层实现由 MPMoviePlayerController 替换为了 AVPlayerContoller[#1831],同时将WebView 底层由 UIWebView 替换为了 WKWebView[#1837]

支持 vivo 小游戏分包加载

随着小游戏的玩法越来越丰富,开发者对于扩大包大小的需求越来越强烈,所以 vivo 小游戏提供了分包加载这一个功能。 所谓的分包加载,即把游戏内容按一定规则拆分为几个包,在首次启动时先下载必要的包,这个必要的包我们称为「主包」,开发者可以在主包内触发其它分包的下载,从而把首次启动的下载耗时分散到游戏运行中。详细说明请参考[分包加载]

Release Notes

Improvements

  • 为组件的 onLoadstartupdatelateUpdate函数添加容错,更好地应对用户脚本抛出的异常[#4941]
  • 在编辑器中预览粒子时,将同步播放当前节点下的子节点中的粒子,方便美术查看效果
  • 完善拖动资源到场景中进行创建的行为
  • 在属性检查器中添加图片是否可以动态合图的选项 Packable,用于解决自定义 shader 获取不到原始 UV 的问题,详见《Texture:packable》
  • 允许在资源编辑器中双击打开 json 资源
  • 导入 plist 图集时默认将贴图类型设为 RAW
  • 在属性检查器中增加 Vec4 类型支持
  • 改善部分 creator.d.ts类型提示
  • 优化 Label的 SHRINK 动态布局,同时支持了 CHAR 模式 [#5223]
  • 避免多次调用 Texture2D.update时的性能开销 [#5198]
  • 在 Android上将 V8升级到了 7.5
  • VideoPlayer适配到了微信小游戏

Editor

  • 修复从 v2.0 升级上来后,AnimationClip 中的旋转数据会丢失的问题
  • 修复从 v2.0 升级上来后,场景和 Prefab 中的节点在特定角度下的旋转值会丢失的问题
  • 修复某些机器上打开项目一直停在“正在导入资源,请稍候”界面的问题
  • 修复项目构建后压缩纹理可能会缺失的问题(感谢 xu.lidong)
  • 修复压缩纹理配置 Quality 为 100,打包无法输出图片文件的问题
  • 修复脚本移动或重命名后可能会报错的问题
  • 修复动画编辑器设置节点 z 值无效的问题
  • 优化了 动画编辑器在组件、资源等状态发生变化时的错误处理
  • 修复场景编辑器中 gizmo 位置不对的问题
  • 修复节点旋转无法 undo 的问题
  • 修复属性检查器设置 Camera的 Rect 无效的问题 [#5294]
  • 修复某些情况下场景或 Prefab 数据出错后,场景无法正常打开的问题
  • 修复 RichText 或 Label 组件在编辑器中填入的文本被自动换行后,有可会在行首生成一个空格的问题
  • 修复层级管理器和资源管理器合并到同一个面板时,内容显示不全的问题

Engine

  • 修复场景延迟加载资源会导致 3D 模型无法显示的问题 [#5071]
  • 修复某些 3D骨骼动画渲染不全的问题 [#5349]
  • 修复引擎初始化时可能出现”requestAnimFrame“相关报错的问题 [#5248]
  • 修复动态合图在特定情况下会导致纹理边缘像素异常的问题(感谢 unace)[#5242]
  • 修复 Animation的“stop”和“lastframe”在特定情况下不触发的问题 [#5246]
  • 修复加载带有 WebView的场景,在场景切换后的首帧会屏幕会闪一下的问题 [#5106]
  • 修复 Label文本置空之后仍会显示的问题 [#5266][#5284]
  • 修复带 LabelOutline组件时,Label的 Overflow 设为 SHRINK 或CLAMP,CacheMode 设为 CHAR 的时候,节点的尺寸不正确的问题[#5145]
  • 修复 RichText文本自动换行后可能会丢失空格符的问题 [#5116]
  • 修复 Sprite组件不支持 MESH模式的问题 [#5195]
  • 修复 ScrollViewPageView启用惯性回弹(elastic)后可能在滑动超出边界后无法回弹的问题 [#4894]
  • 修复 ScrollView的 ScrollBar 异常显示的问题 [#5249]
  • 修复 Layoutscale 小于 1 的时候效果不对的问题 [#5074]
  • 修复 PhysicsCollider组件所在节点在运行时修改 node 的 group 属性可能会报错的问题(感谢 HengHuH)[#4949]
  • 修复引擎内置资源有可能被用户误释放的问题 [#4915]
  • 修复大量渲染节点增删时可能导致内存泄露的问题 [#5025]
  • 修复调用 node 的 targetOff 方法可能无效的问题 [#5052]
  • 修复同时播放的 audio实例超过 32 后,audio 实例有可能被错误销毁的问题 [#5097]
  • 修复粒子在 Free 模式下坐标计算错误的问题 [#5320]

Native

  • 修复原生平台上的 Label内存泄露问题 [#1783][#1786]
  • 修复在Android 部分机型上,EditBox 字体默认为白色的问题 [#1778]
  • 修复在 Mac和 Windows上,当 EditBox处于输入状态字符重叠的问题 [#146]
  • 修复 iOS上 EditBox输入 emoji 时可能会导致崩溃的问题 [#1798]
  • 修复原生平台上 Canvas 适配模式为 SHOW_ALL 时,EditBox输入框位置异常的问题 [#162]
  • 修复 Android上在通知中心显示时锁屏,音频不会暂停的问题 [#1788]
  • 修复 Android上屏幕亮屏时,程序如果在后台仍会播放音频的问题 [#1785]
  • 修复原生平台从后台切前台会自动播放已暂停音频的问题 [#145]
  • 修复在原生平台上修改 Spine/DragonBones材质时,节点位置出错的问题 [#148]
  • 修复在原生平台上 Spine/DragonBones 的 opacity第一帧不正确的问题 [#148]
  • 修复 VideoPlayer在 iOS上全屏后无法返回的问题 [#1800]
  • 修复 VideoPlayer在 Android上播放时锁屏再进入会卡死的问题 [#1811]
  • 修复 cc.sys.languageCode在 Android 上无法获取完整语言地区码的问题 [#1784]
  • 修复在 Mac平台,插件脚本初始化时调用 cc.game.setFrameRate()失败的问题 [#5261]

Web

  • 完善对 IE11 的支持 [#5033]
  • 修复在 Edge 浏览器上点击 EditBox的清除按钮(浏览器自带的),不会触发 input 事件的问题 [#5088]
  • 修复 EditBox在输入过程中文本大小未能随 Node 进行缩放的问题 [#5088]
  • 修复 Edge 和百度浏览器上不能播放音频的问题 [#4910]
  • 修复桌面端 Chrome 和 Safari 上音频可能无法播放的问题 [#4991]
  • 修复桌面端 UC 浏览器播放 WebAudio会报错的问题 [#5048]
  • 修复游戏运行于 Crosswalk时 音频调用 setTargetAtTime产生的报错 [#5281]

Mini Game

  • 修复小游戏开放域中的图集不支持旋转的问题 [#4325]
  • 修复在 OPPO、vivo、华为、即刻玩平台上文本下方可能被裁剪掉的问题[#5303]
  • 升级了小米快游戏构建程序,修复了找不到 pem 资源的问题[#22]

DEPRECATIONS

  • 废弃了 Node上的 convertToWorldSpace函数,请改用 convertToWorldSpaceAR
  • 废弃了 Node上的 convertToNodeSpace函数,请改用 convertToNodeSpaceAR
  • 完善摄像机的坐标转换 API
    • getCameraToWorldPoint改为 getScreenToWorldPoint并且支持 3D Camera
    • getWorldToCameraPoint改为 getWorldToScreenPoint并且支持 3D Camera
    • getCameraToWorldMatrix改为 getScreenToWorldMatrix2D,只支持 2D Camera
    • getWorldToCameraMatrix改为 getWorldToScreenMatrix2D,只支持 2D Camera

BREAKING CHANGES

  • 标准化小米快游戏重力感应返回的数值,和其它平台的返回值保持一致。此版本返回的值相比旧版本将会除以 10。
  • 移除了 Texture2D 上的 setMipmap接口,请改为直接设置 genMipmaps属性

以上就是 Cocos Creator v2.1.3 的更新内容!

下载链接: https://www.cocos.com/creator

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

在产品体验过程中如有遇到技术问题,欢迎各位开发者移步至 Cocos 技术社区反馈交流噢!

也欢迎大家报名参加本周六 Cocos 在深圳举办的技术分享会,一起线下交流!

Cocos 荣耀讲师征稿活动正在火热进行,戳这里了解详情!如果你在工作和学习 Cocos Creator 过程中,获得了独到的开发心得、见解或是方法,并且乐于分享出来,帮助更多开发者解决技术问题,加速游戏开发效率,期待您为“Cocos 荣耀讲师”活动投稿。