hero-image

20678閲戠畻鐩樺紑濂樼粨鏋淈/h2>

以内容创作为核心的一体化游戏开发工具

20678閲戠畻鐩樺紑濂樼粨鏋淈/h2> 发布时间: 2019.05.28

本次发布的 2.0.10 重点提升了原生平台的稳定性,修复了 Spine、DragonBones 和 Label 等相关问题,建议所有 2.0 用户进行升级。此外,2.0.10 还支持发布到小米快游戏即刻玩小游戏这两个全新平台,为开发者们带来了新的机遇。良好的品质离不开细心的打磨,非常感谢各位开发者通过社区、GitHub、Cocos 企业服务等渠道反馈的意见。
以下是相对于 2.0.9 的改动说明:

What's New

支持小米快游戏

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

支持即刻玩小游戏

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

编辑器改进

  • 优化超大项目的构建速度
  • 完善资源 uuid 冲突时的错误处理
  • 移除构建发布时,自动图集为空时的警告,允许自动图集为空
  • 在构建面板中添加了 iOS 和 Mac 平台的包名选项

引擎改进

  • 优化节点的 zIndex刷新性能
  • 新增 Spine 和 DragonBones 的全局 timeScale 选项,可通过 API sp.timeScale 和 dragonBones.timeScale 进行设置
  • 优化 Spine 和 DragonBones 在加速模式下的初始化速度
  • 在 DragonBones 的 ArmatureDisplay 上新增 getArmatureKey 方法,用于作为换装时的索引
  • 添加 MotionStreak 的 BlendFactor 支持
  • 原生平台默认启用 cc.macro.CLEANUP_IMAGE_CACHE 标记,以减少纹理内存占用
  • 优化原生平台 Spine 的内存占用
  • 优化小游戏开放域的性能
  • 小游戏开放域组件 SubContextView 上新增 fps 属性,用于控制开放域刷新频率,默认 60
  • 可通过 disable 小游戏开放域组件 SubContextView 来禁用开放域的主循环,减少性能开销,详见
  • 提升微信小游戏的资源加载速度
  • 修复导入全透明图片时,引擎有可能出现 Rect width exceeds maximum margin 的报错

Bug Fixes

编辑器修复列表

  • 修复构建 OPPO、vivo、华为小游戏时可能会将脚本加密为 JSC 导致构建失败的问题
  • 修复 Windows 下 Android Studio SDK 路径会报错的问题
  • 修复构建 Mac 平台时使用 link 模板会编译报错的问题
  • 修复超大项目在 Windows 平台构建可能报错的问题(当资源数 > 10 万)
  • 修复自动图集构建时可能多导出未使用到的 SpriteFrame 或 SpriteAtlas 资源的问题
  • 修复自动图集构建时的警告信息可能有误的问题
  • 修复粒子系统启用 Custom 模式后无法在编辑器中预览的问题
  • 修复导入 BMFont 时如果字体名称带有括号将会报错的问题
  • 修复反复进入 Prefab 编辑模式时会出现的 object already destroyed 警告
  • 修复从带有 DragonBones 或 Particle 的场景进入 Prefab 编辑模式时,再回到场景会报错的问题 
  • 修复删除 TiledLayer 节点,再 Undo,会报材质为空的问题
  • 修复批量导出多份资源时数据会有残留的问题
  • 修复层级管理器中锁定父节点后,子节点仍然可以在场景中选中的问题
  • 修复场景中没有节点的时候,无法拖动资源到层级管理器的问题
  • 修复资源管理器中重命名文件操作可能无效的问题
  • 修复动画编辑器播放动画结束后,手动跳一帧再点播放就会出错的问题
  • 修复配置文件损坏时无法打开项目的问题
  • 修复自定义引擎不存在时无法创建新项目的问题

引擎修复列表

  • 修复?DragonBones 父骨骼透明度没有与子骨骼透明度级联的问题
  • 修复?DragonBones 在进行换皮操作后,原先的动画监听失效的问题
  • 修复?Spine、DragonBones 启用预乘时,修改节点透明度,出现“曝光“现象的问题
  • 修复远程加载?DragonBones 或?Spine 资源时,手动创建的 Asset 会报错的问题
  • 修复?SpineDragonBones 在?SHARED_CACHE 模式下的缓存更新问题
  • 修复?Spine 在 Cached 模式下,addAnimation 的 delay 参数没有默认值的问题
  • 修复?Spine 在 Cached 模式下,设置?skeletonData 会有警告的问题
  • 修复?Spine 在 Cached 模式下,换装时动画可能异常的问题
  • 修复?Spine 的 json 文件没有 skeleton 字段时会报错的问题
  • 修复?Spine 使用多皮肤,在极速模式下不显示的问题
  • 修复?AudioSource 第二次播放时,获取的 state 状态错误的问题
  • 修复纹理无法动态设置?mipmap 的问题
  • 修复?Label 启用 CHAR mode 时文字定位可能错乱的问题
  • 修复?Label 启用 BITMAP mode 后,动态合图不起作用的问题
  • 修复?Label 渲染的文本过多时离屏 Canvas 尺寸可能过大的问题
  • 修复?Label 所在节点的 opacity 设置超过 255 后显示异常的问题
  • 修复?Label 使用 shrink mode 时可能无法渲染 BMFont 的问题
  • 修复?LabelOutline 组件销毁时可能引发内存泄露的问题
  • 修复?LabelOutline 组件级联时透明度异常的问题
  • 修复?ScrollView 或 Mask 所在节点 Scale 为 0 时,平级节点可能无法响应点击的问题
  • 修复?PageView 的页面动态更新时,滚动位置不对的问题
  • 修复粒子系统的粒子数量过多时可能导致的内存泄露问题
  • 修复粒子系统播放完后,隐藏再显示可能会出现残留粒子的问题
  • 修复 Scale 为 0 的节点在?Prefab 中 Instantiate 三次以上会导致 Scale 数值变成为 1 的问题
  • 修复原生平台资源下载XMLHttpRequest、WebSocketSocketIO 请求结束后有可能崩溃的问题
  • 修复原生平台 GC 可能导致崩溃的问题
  • 避免原生平台初始化过程中如果在原生代码中调用?evalString 导致的崩溃
  • 修复原生平台?Label 显示可能会有黑边的问题
  • 修复原生平台?Spine 资源获取或解析失败时会引起崩溃的问题
  • 修复原生平台?Spine 未完全加载时就销毁可能导致的崩溃问题
  • 修复原生平台?DragonBones 设置 slot 的?displayIndex 属性没有作用的问题
  • 修复?iOS12 无法加载正确的?ttf 文件的问题
  • 修复?iOS 释放 AudioClip 时可能会崩溃的问题
  • 修复?Android 原生平台无法正确加载子包的问题
  • 修复?AndroidEditBox 在 number inputType 下不支持输入小数点等符号的问题
  • 修复?Android Instant 平台加载?Spine 资源报错的问题
  • 修复?Windows 平台前后台切换时可能报错的问题
  • 修复?Web 平台?VideoPlayer 设置 currentTime 无效的问题
  • 修复?Web 平台?VideoPlayer 监听 ready-to-play 事件无效的问题
  • 修复微信小游戏在安卓平台上音频重新播放时无法重头开始的问题
  • 修复百度小游戏 saveFile 导致 tempFilePath 失效的问题

20678閲戠畻鐩樺紑濂樼粨鏋淈/h2> 发布时间: 2019.04.30

自从 Cocos Creator 2.1.0 发布以来,我们收到了来自用户大量的宝贵建议。根据之前公布的计划,我们会持续加快对 v2.1 系列的迭代,以便尽快消化用户们的建议。同时为了防止这些改动影响到老项目的稳定性,我们仅推荐有 3D 需求的项目升级到 v2.1,其它项目可以继续使用 v2.0,等到 v2.2 发布后再同时升级上来。本次 v2.1.1 的升级主要支持了 3D 场景编辑摄像机预览光照系统,同时也合并了最新 2.0.x 的有关改动。

What's New

支持 3D 场景编辑

场景编辑器允许一键切换至 3D 编辑模式,方便对 3D 对象、摄像机、灯光进行编辑。详见文档。

新增游戏预览面板

新增了独立的预览面板,能够在场景编辑的过程中直观地预览摄像机看到的画面。面板打开方式:主菜单 → 面板 → 游戏预览,预览面板可置于独立窗口,也可拖进编辑器主窗口。

新增 3D 光照和阴影

新增了 Light 组件,用于在场景中布置光源,还可结合MeshRenderer 设置阴影效果。详见文档。

升级 EditBox 组件

现在用户可以单独设置 Text Label、Placeholder Label 和 Background 节点,变得更加灵活和简单,也更符合组件化的开发方式。详见文档。

新增文字阴影渲染组件

新增了 LabelShadow 组件,用于给 Label 组件添加阴影效果,和 LabelOutline 用法类似。详见文档。

支持动态创建 3D Primitive 模型

添加了 cc.primitive模块,用于在运行时动态创建 3D 模型,如 box、cone、cylinder、plane 等。详见文档。

集成材质系统(Beta)

加入了材质系统的支持,允许用户创建 Material 和 Effect(Shader)资源类型。需注意的是,目前的材质系统主要是提供给引擎内部使用,仅供开发者预览。我们计划在 2.1.2 就对材质系统进行大幅度升级,届时此版本的材质将无法升级到 2.1.2。

编辑器改进

  • 新增快捷键 Ctrl/Cmd + Shift + F,用于将当前选中节点对齐到场景编辑器所在视角。
  • 在场景编辑器中点选时,允许同时按住 Ctrl/Cmd进行多选
  • 完善针对自定义引擎的容错处理,避免编辑器启动失败
  • 提升资源管理器在超大工程下的搜索性能
  • 添加菜单“文件 - 在新窗口中打开项目”,用于支持在 Mac 上同时开启多个工程
  • 当组件未定义 enabled相关联的生命周期函数的时候,隐藏组件的 enabled勾选按钮
  • 升级 TypeScript 版本到 3.3.3333

引擎改进

  • 让 cc.Vec3能够兼容 cc.Vec2的相关 API
  • 改善了 Label在编辑器及不同浏览器上的定位准确性(感谢”大城小胖”提供建议)
  • 优化 3D骨骼动画性能和体积
  • 原生平台默认启用 cc.macro.CLEANUP_IMAGE_CACHE标记,以减少纹理内存占用
  • 原生平台自动校验当前设备最大支持的纹理尺寸
  • 添加微信小游戏上 XMLHttpRequesttimeout 事件的支持
  • 新增 cc.sys.HUAWEI_GAME枚举,用于判断当前是否是华为快游戏平台
  • 优化 Android5 系统的 WebView 兼容性
  • 当 VideoPlayer设为静音时,允许 iOS 浏览器自动播放

Bug Fixes

编辑器修复列表

  • 修复在 BuildResults.getNativeAssetPath 可能获取不到贴图路径的问题
  • 修复移除动画编辑器正在编辑的动画帧导致的报错
  • 修复反复进入 Prefab编辑模式时会出现的 object already destroyed 警告

引擎修复列表

  • 修复当组件未定义 onEnable时 enabledInHierarchy始终为 false 的问题
  • 修复 ToggleGroup所在节点的 active 为 false 的时候未完全禁用的问题
  • 修复 Label的 opacity 未生效的问题
  • 修复 Slider的锚点设置会影响点击的问题
  • 修复粒子系统播放完后,隐藏节点再显示会出现残留粒子的问题
  • 修复粒子系统的粒子数量过多时可能导致的内存泄露问题
  • 修复原生平台资源下载XMLHttpRequest、WebSocketSocketIO请求结束后有可能崩溃的问题
  • 修复原生平台上 XMLHttpRequest可能因为超时引发崩溃的问题
  • 修复原生平台在电信网络下通过 IPV6 加载(微信头像)文件可能失败的问题
  • 修复原生平台 OpenGL 绘制报错 
  • 修复原生平台 Label渲染系统文字时可能有黑边的问题
  • 修正Android 平台上音频文件不在 OBB时无法加载的问题
  • 修复 Android 平台在引擎初始化完成之前收到 touch 事件可能引起崩溃的问题
  • 修复 Windows平台窗口从最小化还原时可能的报错
  • 修复 Windows平台关闭窗口时出现的报错
  • 修复在浏览器上音量设置为 0 无效的问题
  • 修复 3D项目不兼容微信小游戏开放数据域的问题
  • 修复 3D模型的骨骼穿透问题

REMOVED

  • 移除了 CoffeeScript 脚本的创建入口。CoffeeScript 脚本目前仍可以手动创建,我们计划在 v3.0 移除对 CoffeeScript 的完整支持。

20678閲戠畻鐩樺紑濂樼粨鏋淈/h2>
  • 2.0.x
    • 持续优化性能和提升稳定性
    • 支持更多的小游戏平台
  • 2.2.0
    • 优化自动图集
    • 增强压缩纹理支持
    • 进一步优化 EditBox 的平台兼容性
    • 支持骨骼动画资源延迟加载
    • 优化小游戏平台构建流程
  • 2.3.0
    • 大幅优化原生平台基础渲染性能
    • 大幅优化 TiledMap 支持
  • 2.3.x
    • 支持 3D 物理系统和碰撞检测
    • 将 2.1.1 添加的材质系统由实验版升级为正式版

V2.0.9版本

发布时间: 2019.03.05

本次发布的 2.0.9 版本新增了对 百度小游戏 平台的支持,并且大幅优化了 Spine
DragonBones 在小游戏和 Web 平台上的性能,优化了微信小游戏的资源加载性能和动态文本刷新效率。同时,我们进一步完善了引擎和编辑器的兼容性、稳定性,让大家能够获得更好的开发体验。良好的品质离不开细心的打磨,非常感谢各位开发者通过社区、GitHub、Cocos 企业服务等渠道反馈的意见。 以下是相对于 2.0.8 的改动说明:

What's New

支持发布到百度小游戏平台

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

提升 DragonBones 和 Spine 在非原生平台上的性能

之前 Cocos Creator 在 2.0.7 版本中,已经大幅优化过了 DragonBones 和 Spine 在原生平台上的性能,优化后的性能甚至比 1.9、1.10 还快了平均一倍。而这次发布的 2.0.9,则又针对 Web、小游戏等非原生平台,新增了SHARED_CACHE PRIVATE_CACHE 两种加速模式,使 DragonBones 的性能提升了 15 倍,Spine 的性能提升 3 - 6 倍。  启用加速模式后的性能测试结果:

  • 测试的分值根据帧率和动画数量换算而来,值越高性能越好。

在同屏播放三个以上的动画时,SHARED_CACHE 加速模式还能大幅降低内存开销,以下是同屏一百个动画的内存对比:

  • 测试的分值越低表示内存占用越少。动画越多 SHARED_CACHE 节省的内存就越多。

要启用极速模式,只需要在 DragonBones 或 Spine 组件上设置 Animation Cache Mode 为 SHARED_CACHE 或 PRIVATE_CACHE 即可。关于极速模式的更详细信息,可参考文档中的属性说明。

  • Dragonbones 参考文档:
  • Spine 参考文档:

提升微信小游戏运行性能

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

针对微信小游戏缓存资源耗时较长的问题,我们调整了资源缓存策略,将耗时较长的缓存操作自动延后(#72),缩短了资源加载所需的等待时间。

大幅优化动态文本刷新性能

微信小游戏 7.0.3 版本开始,底层?texImage2D调用耗时过长,导致 Label 渲染系统字体或 ttf 字体时,一旦文字内容发生改变就会影响性能。为此,我们在 Label 组件上新增了一个?Cache Mode 选项,该选项设为?CHAR?模式后,就能彻底解决这个性能问题。Cache Mode 可设置的值有:

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

其余需要注意的是:

  • Cache Mode 仅对系统字体或 ttf 字体有效,BMFont 字体无需进行这个优化。
  • Cache Mode 对所有平台都有优化效果。
  • BITMAP 模式取代了原先的 Batch As Bitmap 选项,旧项目如启用了 Batch As Bitmap 将自动迁移至该选项。

预支持在微信小游戏子域启用 WebGL

微信小游戏已计划在后续版本中支持开放数据域中的 WebGL 渲染模式,我们提前对其进行了适配。开发者无需做任何操作,当微信正式推出支持后,游戏就会自动在子域中启用 WebGL,获得更好的性能。不过需要注意的是,这会导致在目前版本的微信客户端中运行时出现“[GameOpenDataContext] 子域只支持使用 2D 渲染模式”的报错,该报错是引擎检测当前环境是否支持 WebGL 所产生的,不会影响到项目运行,请先无视。

  • 如果升级到 2.0.9 以后,相比微信 7.0.3 之前的版本,仍然有卡顿、掉帧的问题,建议尝试隐藏或者缩小子域的区域,子域像素尺寸越低,性能越高。同时不建议游戏场景中包含常驻子域显示(比如分数之类的信息),这对性能可能有显著影响。

支持发布为 Android App Bundle

在构建面板的 Android 平台下,新增了 App Bundle 选项,勾选后即可将 Android 原生游戏发布为 App Bundle。将 App Bundle 提交到 Google Play 后,Google Play 将会根据玩家手机参数的差异,动态下载不同版本的 APK,达到减少游戏的包体的目的。

编辑器改进

  • 在属性检查器中禁止设置节点宽高为负数
  • 在资源管理器中添加排序方式切换按钮,可选择按照名称或类型进行排序
  • 添加层级管理器的搜索清空按钮,清空后将跳转到之前选中的节点
  • 在层级管理器的下拉搜索框中添加通过 UUID 查找资源被引用情况的功能
  • 同步层级管理器和动画编辑器中的节点选中状态
  • 将默认停靠在属性检查器旁边的服务面板移动到构建发布窗口中
  • 移除除了 Sprite 和 Particle 以外的其它渲染组件上的 Blend Factor 属性
  • 完善粒子系统导入导出 plist 的支持
  • 构建项目时在系统任务栏中显示进度条
  • 重复导入 CCB 和 Cocos Studio 工程时将会覆盖原来的文件夹,不再保留多份
  • 构建微信小游戏时,默认关闭微信开发者工具的代码混淆功能,采用 Creator 自带的混淆功能

引擎改进

  • 完善 Label动态字体的渲染效果,避免了文字边缘可能带有黑边的问题
  • 升级 Spine运行库到 3.6
  • 引入了全新的缓动 API:cc.tween,能提供更简洁的语法和更高的灵活性,详见 
  • 在 RigidBody组件上添加 Awake On Load 属性,用来设置刚体是否默认唤醒
  • 原生平台增加 jsb.copyTextToClipboardAPI,用于拷贝文本到剪贴板
  • 原生平台的模块裁剪不再剔除 XMLHttpRequest 模块
  • 升级 Android 构建工具配置 Gradle至 4.10.3,plugin 至 3.2
  • 将 Android 最低的 Target/Compile SDK Version 从 16 升级至 23,Min SDK Version 仍然是 16
  • 在 Android 8 中默认支持 http 协议 
  • 完善 VideoPlayer组件在 X5 浏览器上的支持
  • 取消 Chrome 69 以上版本中对动态图集的屏蔽(之前会有白色残影所以屏蔽了动态图集)

Bug Fixes

编辑器修复列表

  • 修复动画编辑器无法使用在用户脚本上的问题
  • 修复自动图集不能打包到子包的问题
  • 修复命令行构建项目时,项目会直接生成到 build 目录下的问题
  • 修复命令行构建项目时不加载自定义插件的问题
  • 修复命令行构建项目时 excludeScenes 参数不生效的问题
  • 修复场景编辑器中的网格背景会穿透到某些半透明图片上方,导致颜色和运行时有一些差异的问题
  • 修复自动同步的 Prefab 在保存场景时个别情况下会提示无法保存引用的问题
  • 修复自定义构建插件在“build-finished”阶段获取 BuiltResults 中的子包资源时,资源所在的 nativePath 不正确的问题
  • 修复更改节点层级关系后 Physics Collider 的 Gizmo 显示异常的问题
  • 修复自定义引擎时,项目构建可能出现的无效报错
  • 调整代码自动编译策略,防止插件在修改项目脚本时导入失败

引擎修复列表

  • 修复场景显示对象非常多时会出现渲染错误的问题
  • 修复 Button组件设置为 COLOR 模式后,所在节点颜色不生效的问题
  • 修复在 onLoad之前设置 Button 的 interactable为 false 会导致节点 scale 变为 0 的问题
  • 修复 Label组件未激活就销毁时的报错 
  • 修复 Label在搭配 faceIn action 使用时可能会闪现的问题
  • 修复对 Particle应用 action 会导致粒子发生偏移的问题
  • 修复 Particle 组件会重复解析 plist 中内嵌的 textureData 的问题
  • 修复加载 1.x 旧项目时会丢失场景中的部分 Particle 自定义数据的问题
  • 修复 ScrollView的父节点 scale 为 0 时ScrollView 布局异常的问题
  • 修复 DragonBones如果包含声音文件,播放动画会报错的问题
  • 修复 DragonBones骨骼包含多张纹理时,可能无法渲染的问题
  • 修复 DragonBones的缓存上限未生效,导致缓存不会自动清空的问题
  • 修复加载 1.x 旧项目时会丢失 Spine 的 premultipliedAlpha 设置的问题
  • 修复 Mask组件启用 inverted后未更新点选检测(hit test)的问题
  • 修复调整节点 zIndex后点选检测(hit test)区域可能未刷新的问题 
  • 修复不同 shader 使用同一个 uniform 名称,但是类型不同时获取数据不对的问题
  • 修复在微信小游戏子域中的某些场景中的字段会受到 MD5 干扰的问题
  • 修复原生平台上 WebSocketGC 时的潜在崩溃问题 
  • 修复原生平台 Spine切换父节点后会导致闪退和渲染异常的问题 
  • 修复 iOS原生平台 cc.log的过程中可能会崩溃的问题 
  • 修复 Android平台上 XMLHTTPRequest获取不到 statusText 时引发的崩溃问题 
  • 修复 Android无法播放远程视频的问题 
  • 修复原生和 Web 平台无法加载分包中的资源的问题
  • 修复 Vec3 和 Rect 反序列化结果可能不正确的问题
  • 修复不同 shader 使用同一个 uniform 名称,但是类型不同时获取数据不对的问题

20678閲戠畻鐩樺紑濂樼粨鏋淈/h2>
  • 这个版本如果在代码中频繁修改节点的 zIndex,性能开销可能会比较大,我们将在下个版本进行优化。
  • 在百度小游戏平台上,目前暂时还存在一些平台方面的问题,我们正在配合百度的工程师进行修复。
    • 安卓上存在音频兼容性问题
    • 不支持重力感应
    • XMLHttpRequest 不支持 timeout 回调

V2.0.8版本

发布时间: 2019.02.10
  • 在 cc.WXSubContextView 组件上增加了 reset 方法,让用户在切换子域视图的时候能通过调用这个 API 来正确重置视图大小。(https://github.com/cocos-creator/engine/pull/3718)
  • 修复在安卓微信 7.0.3 上部分机型开启了 Retina 仍然会模糊的问题
  • 修复在安卓微信 7.0.3 上因监听 Device Motion 导致的帧率不稳
  • 修复微信小游戏子包不含任何资源时加载会报错的问题
  • 修复在微信开放数据域中无法使用 BMFont?的问题
  • 修复 RichText 使用 font 标签无效的问题
  • 修复?RichText?使用 on 标签时无法传参的问题
  • 修复编辑器无法通过命令行构建项目的问题
  • 适配从 Creator 2.1 降级到 2.0 之后的场景缩放问题

V2.0.7版本

发布时间: 2019.01.07

最近刚刚发布的 Cocos Creator v2.0.6主要提供了在 Android 和 iOS 上快速接入 Facebook Audience Network和 Facebook Live Video的支持,同时优化了 vivo/OPPO 小游戏的构建流程。 这次发布的 2.0.7 则在 2.0.6 的基础上,进行了比较大的升级。修复了不少 2.0.5 以来遗留的问题,大幅 提高了原生平台的骨骼动画性能,同步了 2.1.0 的一些改进,建议所有平台还在开发阶段的项目进行升级。以下是相对于 2.0.6 的改动说明:

What's New

支持发布到华为快游戏平台

Cocos Creator 正式支持了发布到华为快游戏,详细用法请查阅。

大幅优化原生平台上的 Spine 和 DragonBones 性能

之前有不少用户反馈 Cocos Creator 升级到了 2.0 后,原生平台的骨骼动画性能很差,甚至被迫退回到 1.9 或 1.10 版本,为此我们深表歉意。为了解决这个问题,此次更新大幅优化了原生平台上的 Spine 和 DragonBones 的性能,下面是性能测试结果: 

1

测试的分值根据帧率换算而来,值越高性能越好。可以很明显看到,优化后的性能甚至比 1.9、1.10 还快了平均一倍。另外除了性能上的优化,这个版本还支持了 DragonBones 的二进制格式(.dbbin)。

还需要注意的是,这个版本如果运行在 iOS 9 的系统上,反而会引起负优化。因为这个版本更加倚重了 JavaScript 的 TypedArray 数据结构,而 iOS 9 中的 JavaScriptCore 并不支持 TypedArray,所以性能开销反而会变大。iOS 10 或后续的系统都没有这个问题。建议如果项目一定要支持到 iOS 9,则停留在 1.x 版本。

优化基础渲染性能

v2.0 相比 v1.x,有一些情况引擎不会合并渲染批次,导致了 Draw Call 的增加,例如 Color 或 Opacity 不同,或者共用同一贴图的多个 Sprite 组件混用 Simple、Sliced 或 Filled 模式时的情况。这些问题在该版本都得到了优化,只要它们所在节点的 group 相同,Draw Call 都会被合并。此外,节点 Opacity 为 0 会占用 Draw Call 的问题也优化了。

优化 Label 渲染性能

之前如果场景中同时存在着不少 Label 和 Button 之类的图片,并且它们相互叠加,则会打断渲染引擎的合并操作,使得 Draw Call 升高。这个问题在这个版本中得到了进一步优化。在该版本中,如果 Label 使用的是 TTF(或系统字体),受益于增强后的 机制,这些 Label 都将尽可能与其它纹理进行批次合并。只要满足动态合图的要求,总共就只会有一个 Draw Call。该优化只适用于不会频繁更新的 Label,因此需要手动勾选 Label 上的”Batch As Bitmap”来启用。同时,由于兼容性问题,该优化在桌面端的 Chrome 和微信小游戏暂时不会启用,有需要测试 DrawCall 的话请使用真机或其它浏览器。此外,该版本也修复了 BMFont 和其它图片打包为自动图集后,仍然无法合并 Draw Call 的问题。如果 Label 使用了 BMFont,可以尝试将 BMFont 所用的图片和在场景中与其相互打断的图片设置为同一个自动图集,就能提升渲染性能。

新增 Cocos Services 面板

新增了独立的一体化 服务面板,通过这个面板,用户可以快速的为游戏集成服务,详见 。

完整支持微信小游戏资源分包

由于微信小游戏天然适合从用户的 CDN 中远程加载资源,因此在前期的版本中 Cocos Creator 仅提供了代码分包功能,资源分包还未实现。通过近期和用户的交流,以及和 Cocos 其它内部团队的合作,这个版本正式加入了资源分包的支持,使用方法和原来的代码分包完全一致,详见 。

增加模拟器调试功能

在项目设置 - 预览运行面板中,新增了“开启模拟器调试界面”选项和“等待调试器连接”选项。前一个选项的作用是,在模拟器预览项目时将自动打开调试窗口。后一个选项的作用是,暂停启动过程直至调试器连接完成,用于调试加载过程。

编辑器改进

  • 在 Dashboard 新建项目的模板中添加了 Matchvs 联网游戏范例
  • Dashboard 改为在打开工程的时候关闭,工程关闭的时候自动打开
  • Dashboard 将会自动记录上一次创建的工程路径
  • 优化 Button 在编辑器下的预览效果
  • 优化 Button Click Event 对组件的索引方式,避免脚本重命名后索引就丢失的问题
  • 完善粒子系统的图片导入方式
  • 屏蔽 Spine 和 DragonBones 组件上无效的混合模式,如果有需要请直接在 Spine 或 DragonBones 编辑器中设置。
  • 构建微信小游戏主域工程时,不会再清空子域
  • 修改构建 Android 平台时默认选中的 API Level 为当前最高的 Level(Target API Level)
  • 保证在重复构建项目时,自动图集的文件不会因为内部 SpriteFrame 的排序变了而产生差异
  • 允许设置 RichText 所用的系统字体
  • 新增插件商城在插件下载完成后自动提示用户安装
  • 移除了场景编辑器中的节点路径栏,节点路径可通过层级管理器的节点右键菜单获取
  • 动画编辑器对 cc.Enum 和 cc.Integer 类型的数值默认改用 Constant 曲线,不进行插值
  • 动画编辑器关键帧增删体验优化
  • 编辑器加载自定义引擎时,如果无法成功则自动回退到内置引擎
  • 优化引擎自动编译有关体验
  • 导入 Cocos Studio 场景时,将会自动添加默认 Canvas 和 Camera 节点
  • 新增了其它一系列体验优化

引擎改进

  • [Native] 在 iOS 和安卓平台重新加入了在 v2.0.0 中移除的 WebView和 VideoPlayer支持
  • [Native] Mac 原生平台切换至 V8 引擎,如需用回 JSC 需手动修改宏,详见 
  • [Native] 添加原生平台 LocalStorage 缺失的 key 和 length 属性,详见 
  • [Native] 在 iOS 原生平台上采用跟 Android 统一的拼音输入行为,不保留输入未完成的拼音
  • [Native] 升级安卓编译方式到 NDK r16 + Clang,同时采用 Clang 编译安卓预编译库
  • [Native] 升级 Android 构建工具配置 Gradle 至 4.4,plugin 至 3.1.4。(Gradle 4.6 有已知 issue 会导致资源打包失败)
  • [Native] 优化安卓输入框使用体验
  • [Native] 清理原生平台模版工程对 AnySDK 和 Cocos Analytics 的依赖,改由 Cocos Services 进行集成
  • [Native] 允许在原生平台的 release 编译模式下启用 V8 调试器
  • [Native] 简化 jsb-adapter 定制流程
  • 在 Layout组件上新增 affectedByScale 属性,如果开发者希望 Layout 子节点的缩放能够影响布局,可以手动开启该选项。
  • 允许 RichText中的字段在响应点击事件时传入自定义字符串作为参数,如 <on click="submit" param="10">Submit</on>
  • 添加了 cc.sys.languageCode属性,用于获取完整的系统语言信息,以便区分某些语言的不同方言(subtag)。返回值是一个小写的字符串,例如"zh-tw", "en", "en-us", "fr", "fr-fr", "es-es"。
  • 改善 emoji 在 Label中的自动换行结果
  • Label支持了 XML 格式的 fnt 文件
  • Label节点 onEnable 时将立即刷新一次节点的 Content Size
  • 当 Button的 target 未定义时,将默认使用当前节点
  • ToggleContainer增加了和 Toggle 类似的 checkEvents 事件属性,该事件只有在 Toggle 的 isChecked 状态变为 true 时才触发
  • 将 cc.instantiate()过程中添加到对象上的临时成员变量设为不可枚举
  • 优化 VideoPlayer在 X5 浏览器上的适配
  • 优化了 VideoPlayer全屏播放的有关适配
  • 增加 Web 平台上 WebView的透明度支持
  • 优化了 WebView的显示位置
  • 支持在微信小游戏上响应 cc.game.EVENT_SHOW事件时,获取到平台传入的 res和 referrerInfo参数
  • 完善微信小游戏资源下载时的容错处理 
  • 新增 CC_RUNTIME预定义宏,在 OPPOvivo小游戏上 CC_RUNTIME将为 true,CC_JSB将为 false

Bug Fixes

编辑器修复列表

  • 修复节点大小为 0 时,在场景编辑器中使用矩形变换工具拖动节点导致的锚点计算错误
  • 修复在场景编辑器里面能选中 RichText 子节点的问题
  • 修复场景编辑器中的网格背景会穿透到某些半透明图片上方,导致颜色和运行时有一些差异的问题
  • 修复 Mask 组件被动画编辑器修改后场景编辑器显示异常的问题
  • 修复 Collider 组件在编辑模式中添加的点位置发生偏移的问题
  • 修复在 Hierarchy 面板中无法将最后一个场景根节点的子节点拖到空白处的问题
  • 修复更改节点锁定状态或者关联预制节点的时候没有场景保存提示的问题
  • 修复在预览游戏过程中切换当前编辑场景后,预览的游戏将无法跳转回原先编辑场景的问题
  • 修复模拟器手动刷新后会连续报错导致编辑器卡死的问题
  • 修复动画编辑器暂停时,粒子无法正常预览的问题
  • 修复动画编辑器节点列表可能没更新的问题
  • 修复在动画编辑状态下修改脚本可能会导致节点错乱的问题
  • 修复构建面板未指定默认场景时,弹出报错后将无法重新构建的问题
  • 修复当自动图集的 pac 文件被场景直接引用后,发布工程时仍将丢失未被引用的 SpriteFrame 的问题
  • 修复构建 OPPO 小游戏时,如果因为未设置 release 签名而报错,构建面板仍然会显示构建完成的问题
  • 修复微信小游戏构建时如果有多个子包将出现警告的问题
  • 修复微信小游戏主域构建时,会清空子域包的问题
  • 修复 QQ 轻游戏构建时勾选 MD5 将会导致文件上传失败的问题
  • 修复 QQ 轻游戏构建时屏幕朝向设置未导出的问题
  • 修复发布 Android Instant 平台时远程服务器 ip 获取错误的问题
  • 修复编辑器加载的脚本最外层包含 cc.game.setFrameRate时会引起 Button 缩放失效的问题
  • 修复在编辑器下访问 cc.systemEvent时的报错
  • 修复自定义 Cocos2d-x 引擎时找不到模拟器的问题
  • 修复使用命令行构建项目时,不论是否出错,错误码始终返回 0 的问题

引擎修复列表

  • 修复节点 destroy后,activeInHierarchy仍为 true 的问题
  • 修复 RenderTexture中的 filter, premultiply alpha设置无效的问题
  • 修复无法加载由插件引入的场景的问题
  • 修复 Sprite组件使用 Filled 模式无法正确显示图集中旋转的 SpriteFrame 的问题 
  • 修复延时加载 ttf字体会导致加载死循环的问题
  • 修复使用自定义 ttf字体可能引起 FPS 波动的问题
  • 修复延迟加载的 fnt字体不显示的问题
  • 修复 EditBox键盘收起来后屏幕就无法自动适配朝向的问题
  • 修复在透明节点上的 RichText被重新赋值文本后会闪一下的问题
  • 修复节点的 color 对 RichText无效的问题
  • 修复 LabelOutline组件 enabled 状态修改时效果没同步变化的问题
  • 修复 LabelOutline设置颜色无效的问题
  • 修复 PageView组件位置发生偏移的问题
  • 修复 Layout计算 anchor 时,值有可能变为 Infinity 的问题
  • 修复 Spine的 Skeleton 组件勾选了预乘后导致节点 opacity 失效的问题
  • 修复当 Spine在 Mask 下重新加载时贴图有可能丢失的问题
  • 修复 DragonBones不同节点使用相同骨骼不同图集时的显示问题
  • 修复使用了 Mask的情况下 Spine 有可能丢失贴图导致的渲染异常
  • 修复 Mask在 IMAGE_STENCIL 模式下未指定 SpriteFrame 时无限报错的问题
  • 修复 Mask组件在编辑器中 undo 时,SpriteFrame 的改动不会更新的问题
  • 修复场景延迟加载时,Mask采用 IMAGE_STENCIL 模式导致的报错 
  • 修复 MotionStreak引起的 GL 报错
  • 修复 Button在 Scale 模式下会使节点的 scaleY 变成 scaleX 的问题
  • 修复 Button在多个状态互相叠加时可能有些状态失效的问题
  • 修复了在 start 方法中设置 Toggle的isChecked无效的问题
  • 修复游戏暂停再继续以后,Animation发生闪现的问题 
  • 修复 cc.sys.getSafeAreaRect在非 iOS 原生平台返回的设计分辨率坐标不对的问题
  • 修复 Node 的 group修改后立即调用 findCamera,无法获得最新结果的问题 
  • 修复启用 MD5 后反复加载同个 Audio时,调用栈有可能溢出的问题 
  • 修复 Audio多次重复加载后可能无法播放的问题 
  • 修复 AnimationState的参数有可能解析为字符串类型的问题
  • 修复 MouseJoint未能响应 touch cancel 的问题
  • 修复预览游戏时,cc.game的 EVENT_GAME_INITED和 EVENT_ENGINE_INITED事件不会触发的问题
  • [Wechat] 修复微信小游戏开放数据域上设置-webkit-transform出现的报错
  • [QQPlay] 修复 QQ 轻游戏不响应前后台切换事件的问题
  • [QQPlay] 修复 QQ 轻游戏上如果使用斜体,字体将会变得很小的问题
  • [Wechat][QQPlay]修复小游戏平台 audio setCurrentTime之后,不触发 ended事件的问题 
  • [Wechat][QQPlay]修复在微信小游戏、QQ 轻游戏中播放声音时,切换前后台回到游戏,声音播放的相关问题 
  • [Web] 修复 Chrome69、70 上半透明对象渲染后可能出现白色残影的问题 
  • [Web] 修复在浏览器上频繁切换横竖屏时 EditBox可能报错的问题
  • [Web] 修复在浏览器上 cc.sys.platform平台状态错误的问题
  • [Web] 修复在浏览器上调用 cc.view.setFrameSize不生效的问题
  • [Web] 修复在安卓部分 WebView 上未启用 WebGL 导致的运行问题
  • [Web] 修复在 Web 平台上 Android 9 系统获取到的重力感应方向相反的问题
  • [Web] 完善在浏览器上的字体加载方式,修复个别 ttf字体必须加载很久的问题 
  • [Native] 修复原生平台图片预乘失效的问题
  • [Native] 修复原生平台上 Spine预乘效果不对的问题
  • [Native] 修复原生平台连接 socket.io服务器可能会报 Bad Request 的错误
  • [Native] 修复 iOS 和安卓无法检测重力感应的问题
  • [Native] 修复 iOS 调用 cc.game.restart重启游戏后再输入文本会崩溃的问题
  • [Native] 修复 Windows 原生平台上 Label的 opacity 属性不生效的问题
  • [Native] 修复安卓上无法监听 onKeyUp的问题
  • [Native] 修复安卓手机如果自带的 SSL 证书过期后会导致资源加载失败的问题
  • [Native] 修复安卓原生平台下载图片时不支持服务器重定向的问题 
  • [Native] 修复在 iOS 横屏模式下,EditBox输入的内容不可见的问题
  • [Native] 修复 iOS9不支持 Promise 导致的运行问题
  • [Native] 修复在原生平台上设置音量为 0 时,音量会变为 1 的问题 

已知问题

  • 目前 OPPO 小游戏的分包功能仍不支持
  • VideoPlayer 在安卓上锁屏后再进入,游戏会崩溃
  • VideoPlayer 在 iOS 上进入全屏后将无法返回游戏

升级指南

v2.0.7 升级注意事项

安卓的 NDK 版本需要升级到 r16,否则将编译失败。

微信小游戏开放数据域

从 v2.0.1 开始,Cocos Creator 升级了开放数据域解决方案,请参阅 。

v2.0 升级指南

详见 。

资源升级

从 v1.10 开始,Cocos Creator 对底层资源类型进行了重构,大多数项目不受影响,但有些项目可能会收到一些警告,详情请查阅 。

后续版本预告

v2.1 也将迎来升级

相比 v2.0,v2.1 的提升将主要围绕 3D 领域,我们推荐有 3D 需求的新项目升级到这个版本,并且在论坛等渠道和我们建立联系,我们负责 3D 的小伙伴将提供相关支持。由于 2.1 是一个很新的版本,我们将加快迭代频率,尽量满足开发者的需求。2.1 的下一个版本是 2.1.1,该版本将支持 3D 场景编辑、摄像机预览和材质系统,同时也会合并 2.0.7 的这些改动。

附:微信小游戏升级提示

根据微信团队的通知,。在现有的 Creator 版本中,cc.view.enableRetina(true)默认是会调用的,你无需做出任何改动,一般不会遇到适配问题。如果有需要,也可以在发布后的 main.js 中,手动修改 cc.view.enableRetina为 false。

V2.0.6版本

发布时间: 2018.12.14

Cocos Creator v2.0.6 基于 v2.0.5 升级而来,在保证 v2.0.5 稳定性的基础上,提供了在 Android 和 iOS 上快速接入 Facebook Audience Network和 Facebook Live Video的支持。Facebook Audience Network 是 Facebook 推出的广告平台,提供了强大的广告变现的能力。Facebook Live Video 是 Facebook 推出的直播 SDK,允许玩家在玩游戏的时候直接进行游戏直播,并且分享到 Facebook 的社交网络,有效提高了游戏的传播能力。有关这两个 SDK 的具体接入流程,请参考文档。此外,这个版本还优化了 vivo/OPPO 小游戏的构建流程,建议要发布 vivo/OPPO 小游戏的项目及时升级。

改动列表

  • 在服务面板中添加了 Facebook Audience Network和 Facebook Live Video集成选项
  • 修复 Facebook Instant Games 无法上传的问题
  • 修复 Facebook Instant Games 打出来的 zip 包未启用 zip 压缩的问题
  • 优化了 vivo 小游戏的构建面板:
    1. 移除了 npm 路径输入框
    2. 应用图标修改为任意路径,不再局限于游戏工程的路径,并在应用图标输入框右边添加了可选择图片路径功能的按钮
    3. 去除了 certificate.pem、private.pem 证书固定放在[游戏工程]/build-templates/jsb-link的用法,修改为自主选择它们的路径。同时在选择 certificate.pem 的最右边按钮,增加了证书的功能。(注意使用 Windows 系统需要事前装 openssl 软件和配置其环境变量)
  • 优化了 OPPO 小游戏构建面板:
    1. 移除了 npm 路径输入框和 quickgame 输入框,Cocos Creator 已内置 quickgame。
    2. 应用图标修改为任意路径,不再局限于游戏工程的路径,并在应用图标输入框右边添加了可选择图片路径功能的按钮
    3. 去除了 certificate.pem、private.pem 证书固定放在[游戏工程]/build-templates/jsb-link的用法,修改为自主选择它们的路径。同时在选择 certificate.pem 的最右边按钮,增加了证书的功能。(注意使用 Windows 系统需要事前装 openssl 软件和配置其环境变量)
    4. 打包分包 rpk 时的输出路径调整为和未设置分包 rpk 时的路径一样,在[游戏工程]/build/quickgame/build/目录里。并且打包分包 rpk 时只会生成一个 rpk 文件,不再生成其他分包目录。
  • 微信小游戏发布后默认不启用 ES6 转 ES5
  • 在微信小游戏上默认将最大下载并发数(cc.macro.DOWNLOAD_MAX_CONCURRENT)限制在 10 个以内
  • 修复微信小游戏调用 cc.game.end()时的报错
  • QQ 轻游戏构建时允许直接打包出 zip 文件,便于上传服务器
  • 修复 QQ 轻游戏上 Mask 渲染的问题
  • 修复编译过 Android + AnySDK 后会导致 Android Instant 平台运行闪退的问题

20678閲戠畻鐩樺紑濂樼粨鏋淈/h2>

v2.0.7 即将发布,重点优化原生平台性能我们很快将对 v2.0.7 进行公测,在这个版本中我们优化了引擎的渲染性能,尤其是原生平台的 Spine 和 DragonBones,性能都有了很大幅度的提升。v2.1 的迭代将会比较激进相比 v2.0,v2.1 的提升将主要围绕 3D 领域,我们推荐有 3D 需求的新项目升级到这个版本,并且在论坛等渠道和我们建立联系,我们负责 3D 的小伙伴将提供相关支持。由于 v2.1 是一个很新的版本,我们将加快迭代频率,尽量满足开发者的需求。我们将会在近期就推出 v2.1.1 版本,用来支持 3D 场景编辑、摄像机预览和材质系统,优化 3D 开发流程。

20678閲戠畻鐩樺紑濂樼粨鏋淈/h2> 发布时间: 2018.11.29

Cocos Creator 从 v2.1 版本开始,最大的改动就是支持了 3D 模型渲染、3D Camera、3D 骨骼动画、3D 点选等 3D 特性,同时编辑器原生支持解析 FBX 格式的 3D 模型文件,不需要额外的导入流程。

在之前的 v2.0 中,Cocos Creator 就已经用上了基于 Cocos3D 的 3D 渲染器,具备了正式引入 3D 支持的基础。3D 特性的加入可以大大丰富 2D 游戏的表现力,减轻 2D 游戏的资源开销,带来更多的想象与扩展空间。不过需要强调的是,Cocos Creator 的目标用户仍然是现有的 2D 游戏开发团队,2D 游戏仍然是 Cocos Creator 2.x 时代的核心服务目标。我们会坚持优化 2D 游戏的开发体验及基础性能,逐步增加适合融入 2D 游戏的 3D 功能,陪伴 2D 游戏团队共同成长。因此,Cocos Creator 不会成为一个纯 3D 引擎,那是 Cocos3D 的目标。Cocos Creator 的发展路线更接近 2.5D。

这不是 Cocos 第一次把引擎从 2D 升级到 3D,几年前 Cocos2d-x 就在 3D 领域进行过扩展,积累了不少经验,更诞生了“剑与家园”这样非常优秀的作品。不过当时是在一套已经很重的 2D 渲染器上堆砌 3D 功能,也缺乏编辑器支持,因此最终并未得到市场的广泛认可。而这一次,Cocos Creator 是在 Cocos3D 的 3D 渲染器基础上,直接把 3D 潜能释放出来,也保证了无缝的编辑器使用体验,因此这次的改变是完全不同性质的。

20678閲戠畻鐩樺紑濂樼粨鏋淈/h2>

v2.0 会继续维护,原生平台性能将会尽快优化

 v2.0 和 v2.1 将在一段时间内共同发展,v2.0 会继续维护,增加更多的性能优化和缺陷改善。我们很快将对 v2.0.7 进行公测,在这个版本中我们优化了引擎的渲染性能,尤其是原生平台的 Spine 和 DragonBones,性能都有了很大幅度的提升。

v2.1 的迭代将会比较激进 

相比 v2.0,v2.1 的提升将主要围绕 3D 领域,我们推荐有 3D 需求的新项目升级到这个版本,并且在论坛等渠道和我们建立联系,我们负责 3D 的小伙伴将提供相关支持。由于 v2.1 是一个很新的版本,我们将加快迭代频率,尽量满足开发者的需求。特别是目前 v2.1.0 版本仍不支持 3D 场景编辑,仅能够在属性检查器中对节点进行 3D 参数的设置。我们将会在近期就推出 v2.1.1版本,用来支持 3D 场景编辑和材质系统,优化 3D 开发流程。

完整改动列表(相比 v2.0.5)

What's New

3D 节点  

在 2.1 中,默认新创建出来的节点都仍然是 2D 的,当有需要时,只需要点击节点右上方的 2.5D 按钮就能切换成 3D 模式,切换后就能编辑 z 轴,详见。

3D节点切换动画_2
3D节点切换动画

3D Camera  

和 Node 一样,Camera 也分为了两种模式。当你把 Camera 组件添加到普通的 2D 节点上时,它就是一个 2D Camera。当你把 Node 切换到 3D 模式后,Camera 也会进入 3D 模式,3D 模式下即可编辑 Camera 的 FOV 等参数。

3D Camera切换动画_2
3D Camera切换动画

3D 模型导入  

目前 Cocos Creator 支持导入的 3D 模型格式为使用非常广泛的 .fbx,基本上 3D 建模软件都支持导出这种格式。导入的流程很简单,只需要将 .fbx 模型资源拖入到资源管理器,等待片刻即可完成导入工作。导入完成后,在资源管理器中看到导入后的模型资源是一个可以展开的文件夹,导入模型的时候编辑器会自动解析模型的内容,并生成 Prefab、网格、骨骼动画等资源,详见。

1

Mesh Renderer 组件  

Mesh Renderer 用于绘制网格资源,详见。

2

?骨骼动画组件  

骨骼动画组件继承自 Animation 组件,骨骼动画组件的使用方法与 Animation 组件没有太大区别,只是骨骼动画组件使用的剪辑只能是骨骼动画剪辑。骨骼动画组件将在导入模型时自动添加到模型的 Prefab 中,详见。

3

更多 3D 相关说明,请查阅文档。

优化自动图集构建速度  

大幅优化自动图集构建速度,如果图集没有改变的话则直接使用上次构建的结果。

进一步提升渲染性能  

v2.0 相比 v1.x,有一些情况引擎不会进行渲染批处理,导致了 Draw Call 的增加。v2.1 对这些情况重新进行了优化。如之前 Color 或 Opacity 不同无法批处理,Sliced 和非 Sliced 共用同一贴图无法批处理,Opacity 为 0 的节点仍占用 Draw Call 的问题都得到了解决。

增加模拟器调试功能  

在项目设置 - 预览运行面板中,新增了“开启模拟器调试界面”选项和“等待调试器连接”选项。前一个选项的作用是,在模拟器预览项目时将自动打开调试窗口。后一个选项的作用是,暂停启动过程直至调试器连接完成,用于调试加载过程。

4

纹理自动压缩  

可以直接在编辑器中设置纹理需要的压缩方式,Creator 将在项目发布时自动对纹理进行压缩。在 Web 平台上支持同时导出多种图片格式,引擎将根据不同的浏览器自动下载合适的格式,详见。

编辑器  

  • Dashboard 改为在打开工程的时候关闭,工程关闭的时候自动打开
  • Dashboard 将会自动记录上一次创建的工程路径
  • 优化 Button 在编辑器下的预览效果
  • 优化 Button Click Event 对组件的索引方式,避免脚本重命名后索引就丢失的问题
  • QQ 轻游戏构建时允许直接打包出 zip 文件,便于上传服务器
  • 新增插件商城在插件下载完成后自动提示用户安装
  • 构建微信小游戏主域工程时,不会再清空子域
  • 修改构建 Android 平台时默认选中的 API Level 为当前最高的 Level(Target API Level)
  • 移除了场景编辑器中的节点路径栏,节点路径可通过层级管理器的节点右键菜单获取
  • 动画编辑器对 cc.Enum 和 cc.Integer 类型的数值默认改用 Constant 曲线,不进行插值
  • 动画编辑器关键帧增删体验优化
  • 优化引擎自动编译有关体验
  • 新增了其它一系列体验优化

引擎  

  • [UI] 在 Layout 组件上新增 affectedByScale 属性,如果开发者希望 Layout 子节点的缩放能够影响布局,可以手动开启该选项。
  • [UI] 支持 XML 格式的 fnt 文件
  • [UI] Label 节点 onEnable 时将立即刷新一次节点的 Content Size
  • [UI] 当 Button 的 target 未定义时,将默认使用当前节点
  • [UI] ToggleContainer 增加了和 Toggle 类似的 checkEvents 事件属性,该事件只有在 Toggle 的 isChecked 状态变为 true 时才触发
  • [Action] 新增了 cc.Rotate3DTo、cc.rotate3DTo、cc.Rotate3DBy、cc.rotate3DBy 四个 Action 的支持
  • [Native] 在 iOS 和安卓平台重新加入了在 v2.0.0 中移除的 WebView 和 VideoPlayer 支持
  • [Native] Mac 原生平台切换至 V8 引擎,如需用回 JSC 需手动修改宏,详见
  • [Native] 添加原生平台 LocalStorage 缺失的 key 和 length 属性,详见
  • [Native] 在 iOS 原生平台上采用跟 Android 统一的拼音输入行为,不保留输入未完成的拼音
  • [Android] 升级安卓编译方式到 NDK r16 + Clang,同时采用 Clang 编译安卓预编译库
  • [Android] 升级 Android 构建工具配置 Gradle 至 4.4,plugin 至 3.1.4。(Gradle 4.6 有已知 issue 会导致资源打包失败)
  • [Android] 优化安卓输入框使用体验
  • [Android] 压榨安卓空包包体,最小包体从 7.0MB 减小到 6.3MB
  • [Web] 增加 Web 平台上 WebView 的透明度支持
  • [Web] 优化了 WebView 组件的显示位置
  • [Web] 优化 VideoPlayer 在 X5 浏览器上的适配表现
  • [Wechat] 支持在微信小游戏上响应 cc.game.EVENT_SHOW 事件时,获取到平台传入的 res 和 referrerInfo 参数
  • [VideoPlayer] 优化了 VideoPlayer 全屏播放的有关表现

Bug Fixes

编辑器  

  • 修复动画编辑器节点列表可能没更新的问题
  • 修复在场景编辑器里面能选中 RichText 子节点的问题
  • 修复使用命令行构建项目时,不论是否出错,错误码始终返回 0 的问题
  • 修复场景编辑器中的网格背景会穿透到某些半透明图片上方,导致颜色和运行时有一些差异的问题
  • 修复外部拖拽资源到资源管理器的无效位置时,编辑器会报错的问题
  • 修复发布 Android Instant 平台时远程服务器 ip 获取错误的问题

引擎  

  • [Core] 修复节点 destroy 后,activeInHierarchy 仍为 true 的问题
  • [Core] 修复 RenderTexture 中的 filter, premultiply alpha 设置无效的问题
  • [Core] 修复无法加载由插件引入的场景的问题
  • [Web] 修复 Chrome 69、70 上半透明对象渲染后可能出现白色残影的问题(Since 2.0)
  • [UI] 修复 Button 在多个状态互相叠加时可能有些状态失效的问题
  • [UI] 修复 LabelOutline 设置颜色无效的问题
  • [UI] 修复了在 start 方法中设置 Toggle.isChecked 无效的问题
  • [UI] 修复 LabelOutline 组件 enabled 状态修改时效果没同步变化的问题
  • [Animation] 修复 AnimationState 的参数有可能解析为字符串类型的问题
  • [QQPlay] 修复 QQ 轻游戏不响应前后台切换事件的问题
  • [QQPlay] 修复 QQ 轻游戏上如果使用斜体,字体将会变得很小的问题
  • [QQPlay] 修复 QQ 轻游戏在锁屏重新进入或前后台切换时,声音无法重新播放的问题
  • [微信小游戏] [QQPlay] 修复小游戏平台 audio setCurrentTime 之后,不触发 ended 事件的问题
  • [Native] 修复原生平台连接 socket.io 服务器可能会报 Bad Request 的错误
  • [Native] 修复 iOS 和安卓无法检测重力感应的问题
  • [Native] 修复 iOS 调用 cc.game.restart 重启游戏后再输入文本会崩溃的问题
  • [Native] 修复 Windows 原生平台上 Label 的 opacity 属性不生效的问题
  • [Native] 修复安卓上无法监听 onKeyUp 的问题
  • [Native] 修复安卓手机如果自带的 SSL 证书过期后会导致资源加载失败的问题
  • [Native] 修复安卓原生平台下载图片时不支持服务器重定向的问题
  • [Physics] 修复 MouseJoint 未能响应 touch cancel 的问题
  • [Spine] 修复当 Spine 在 Mask 下重新加载时贴图有可能丢失的问题

MIGRATION GUIDE

 v2.1 升级注意事项  

  • Node 的 rotation 相关 API 已被标记为 deprecated,运行时将提示升级为 angle ,详见
  • 安卓的 NDK 版本需要升级到 r16,否则将编译失败。

微信小游戏开放数据域  

从 v2.0.1 开始,Cocos Creator 升级了开放数据域解决方案,请参阅。

v2.0 升级指南  

详见

资源升级  

从 v1.10 开始,Cocos Creator 对底层资源类型进行了重构,大多数项目不受影响,但有些项目可能会收到一些警告,详情请查阅。

以上就是 Cocos Creator v2.1.0 的更新说明。各位开发者进入 Cocos 官网下载新版本,下载完毕新建一个 example 工程,打开 assets/cases/3d 下的案例即可体验。

V2.0.5版本

发布时间: 2018.11.06

v2.0.5 相比不久前发布的 v2.0.2,提供了发布到 OPPO 小游戏和 vivo 小游戏平台支持,修复了不少问题,进一步提升了产品稳定性,强烈建议所有 2.0 用户及时更新版本。良好的品质离不开细心的打磨,非常感谢各位开发者通过社区、GitHub、Cocos 技术服务等渠道反馈的意见。

20678閲戠畻鐩樺紑濂樼粨鏋淈/h2>

新增发布到 OPPO 小游戏平台

Cocos Creator 正式支持了发布到 OPPO 小游戏,详细用法请查阅 。

新增发布到 vivo 小游戏平台

Cocos Creator 正式支持了发布到 vivo 小游戏,详细用法请查阅 []。

Editor

  • [Auto Atlas] 修复自动图集默认的BestAreaFit 算法无法计算出正确的图集大小的问题
  • [Auto Atlas] 修复自动图集的目录出现嵌套时,父目录中的图集会把子目录中的图片重复打包进去的问题
  • [Auto Atlas] 修复自动图集打包后可能出现黑边的问题(旧的自动图集需要删掉配置重新创建才会生效)
  • [Auto Atlas] 修复自动图集Force Squared 选项不生效的问题
  • [Wechat] 修复构建微信小游戏时无法修改子域目录名的问题
  • [QQPlay] 修复v2.0.2 在QQ 轻游戏上无法导出插件脚本的问题
  • [Google Play Instant] 构建Android Instant 时允许Default URL 为空

Engine

  • [Core] cc.loader.loadResArray 的第二个参数支持传入一个type 数组(感谢@caochao)[]
  • [Native] 增加 cc.sys.getSafeAreaRect() API 来获取手机屏幕安全区域(以设计分辨率为单位)
  • [Core] 修复v2.0 屏幕渲染效果有轻微模糊的问题
  • [Core] 修复了当组件被 destroy() 时,如果所在节点还未添加到场景,组件可能仍然会被激活的问题
  • [Core] 修复SpriteFrame 调用 setRect() 后效果不对的问题
  • [Core] 修复v2.0 中cc.Texture2D 调用initWithData() 时的报错
  • [Core] 修复v2.0 中渲染组件在节点未激活时依然可能会渲染的问题
  • [UI] 修复Toggle 组件设置 isChecked 属性时状态未更新的问题
  • [UI] 修复ScrollView.content 对象修改时的报错
  • [UI] 修复v2.0 中RichText 中的部分文字可能不显示的问题
  • [UI] 修复PageView 的began 事件不触发的问题
  • [UI] 修复Mask 中的segments 无效的问题
  • [UI] 修复Mask 嵌套时Stencil 状态不对的问题
  • [UI] 修复WebView 在读取default 页面时不触发load 事件的问题
  • [UI] 修复横竖屏频繁切换时EditBox 可能报错的问题
  • [UI] 修复 once 注册的点击事件在响应后仍会穿透给平级的其它节点的问题
  • [Audio] 修复Audio 对effect 的操作可能影响到music 的问题
  • [Spine] 修复v2.0 中ScrollView 中的Spine 透明度和预乘不对问题
  • [Animation] 修复动画quickFindIndex 的问题
  • [Animation] 修复通过Animation 注册lastframe 事件无效的问题
  • [Particle] 修复粒子系统调用 resetSystem() 会失败的问题
  • [Wechat] 修复微信小游戏缓存空间已满时,资源无法加载的问题
  • [Wechat] 修复微信小游戏从后台切换前台,会播放没有释放掉的音频的问题
  • [Facebook Instant Games] 修复在Facebook Instant Games 上未启用Retina 的问题
  • [iOS] 修复v2.0 在iOS 9 上由于不支持ES6 导致的报错
  • [QQPlay] 修复QQ 轻游戏上font size 为float 类型的时候,文字显示过小的问题
  • [Google Play Instant] 修复在分割首包界面编辑时,概率性出现jsb-adapter 重新加载导致的真机显示黑屏问题

MIGRATION GUIDE

微信小游戏开放数据域

从 v2.0.1 开始,Cocos Creator 升级了开放数据域解决方案,请参阅 []。

 v2.0 升级指南

详见 []。

资源升级

从 v1.10 开始,Cocos Creator 对底层资源类型进行了重构,大多数项目不受影响,但有些项目可能会收到一些警告,详情请查阅 []。

V2.0.4版本

发布时间: 2018.10.18

相对于 2.0.2,2.0.4  增加了发布到 Google Play Instant 的支持。其它功能未做任何调整。

相关资源

 

20678閲戠畻鐩樺紑濂樼粨鏋淈/h2> 发布时间: 2018.09.30

v1.10.2 是对不久前发布的 v1.10.1 的缺陷修复,建议所有 1.10 用户及时更新版本。2.0 用户无需降级,因为该版本的修复都已经包含在近期发布的 v2.0.2 中。此外,v1.10.2 并未包含 v2.0.2 中对微信小游戏和 QQ 玩一玩的完整修复,因此如果需要发布到小游戏平台,还是建议升级到最新的 v2.0.2 版本。良好的品质离不开细心的打磨,非常感谢各位开发者通过论坛、GitHub、Cocos 技术服务等渠道反馈的意见。

RELEASE NOTES

Editor

  • 修复退出动画编辑模式后,Widget.enabled 等属性未正确还原的问题
  • 修复动画编辑完成后不保存但是记录残留在编辑器中的问题
  • 完善层级管理器的节点展开、折叠操作
  • 完善层级管理器、资源管理器拖动节点时的样式表现
  • 修复当组件的激活框被点击的时候,组件会折叠起来的问题
  • 修复资源管理器复制多个文件的时候,只复制第一个的问题
  • 修复选中粒子退出动画编辑器的时候,编辑器帧率会变低的问题
  • 修复导入未支持的 fnt 会导致编辑器卡住的问题
  • 启动页面中的语言选择对话框,直接获取系统设置

Engine

  • 修复 removeAllActions 无法移除所有 action 的问题
  • 修复 SHOW ALL 模式下导致的触摸位置偏移问题
  • 修复 Chrome 上旋转 90 度后 Editbox 被隐藏的问题
  • 修复锁屏情况下竖屏游戏横屏显示时重力感应的方向错误
  • 修复获取 TiledLayer properties 为空的问题
  • 修复大量调用 loader 加载 API 后导致的加载性能下降
  • 修复 stopAllEffect、pauseAllEffects、setEffectsVolume 会同时影响到背景音乐的问题
  • 修复 once 事件监听器无法阻断平级触摸事件的问题
  • 修复 touchstart 坐标在微信小游戏上不对的问题
  • 修复了 QQ 玩一玩上 emoji 导致的部分机器黑屏问题
  • 修复原生平台上 java 和 js 相互调用时传递 null 引发的一些问题
  • 修复 Vec2.signAngle 的计算错误
  • 修复多行文本框某些情况下无法换行的问题
  • 修复 ScrollView 跟 mask 大小不一致时候,scrollTo* 位置会有偏差
  • 修复 ScrollView 向右下角或左上角滑动时,滚轮有概率显示异常的问题

V2.0.2版本

发布时间: 2018.09.22

详细更新列表

FEATURE

  • 原生平台添加 jsb.saveImageData 接口来保存截图,请参考测试用例
  • TTF 字体加载融入 Loader 体系,支持 RichText 在全平台的延迟加载
  • 添加 cc.Mat4 value type 类型,便于创建矩阵和矩阵的运算

Editor 修复

  • 修复动画编辑器保存完动画后,取消保存,但修改扔残留在场景数据中的问题
  • 修复 MotionStreak 在动画编辑器中添加 color 属性时导致属性面板 color 变为 null 的问题
  • 修复 RichText 节点的 Anchor 值修改后,场景编辑器中无响应的问题
  • 修复 Prefab 编辑界面下重编译脚本导致场景丢失的问题
  • 修复关闭 Prefab 后 Hierarchy 层级全部展开并跳到首节点的问题
  • 修复节点树未展开状态下,点击 inspector 中的节点无法跳转的问题
  • 修复节点树展开选项设置无效的问题
  • 修复复制节点树不复制状态,关闭的节点树会被全部展开的问题
  • 修复 Prefab 编辑界面下重编译脚本导致场景丢失的问题
  • 修复资源管理器的多项复制和粘贴无效问题
  • 修复动画编辑器打开再关闭后场景内持有焦点的粒子系统变卡顿的问题

Engine 修复

  • 将 Camera clearFlags 默认开启 stencil 和 depth
  • 修复了 inverted Mask 无效的问题
  • 修复部分小米手机上由于 Stencil buffer 状态问题出现的渲染错乱
  • 修复 Mask 组件互相影响 Stencil 区域的问题
  • 修复 Mask 内部的 Spine 节点影响外部的 Spine 节点同样被剪裁的问题
  • 修复复杂 Graphics 让 Mask Stencil 失效的问题
  • 修复大量调用 loader 加载 API 后导致的加载性能下降
  • 使用 uint8 做 MeshBuffer 扩充时的数据拷贝,避免 Graphics 因此产生的颜色错误
  • 兼容微信 6.6.5 及以下版本不支持 gl.getExtension 导致的引擎初始化失败
  • 修复微信开放数据域中重写 wx.onMessage 导致的警告
  • 修复小游戏开放数据域中旋转节点方向错误的问题
  • 修复开放数据域中开启 ES6 转 ES5 导致 cc 未定义的问题
  • 修复 Editbox stayOnTop 时没有监听 endEditing 的问题
  • 修复 Editbox stayOnTop 状态下文字被遮挡的问题
  • 修复 Web 平台 Editbox 在 Camera 缩放情况下,输入框和文字偏离的问题
  • 修复小游戏平台 Editbox 多行输入时,点击完成会触发多次 editingDidEnd 事件的问题
  • 修复 Editbox 在开始输入时重新适配导致场景过小的问题
  • 修复 Chrome 上旋转 90 度后 Editbox 被隐藏的问题
  • 修复 Particle 生命周期长于 emissionRate 时不会重复播放的问题
  • 修复粒子系统偶尔出现的虚化残影渲染问题
  • 修复 Sprite 在 onEnable 是可能遗漏更新 material 导致的渲染问题
  • 修复延迟加载情况下,Sprite 的颜色设置失效的问题
  • 同步 TiledTile 和 TiledLayer 中对应图块的 gid
  • 避免 TiledLayer 在没有贴图的情况下的报错
  • 修复获取 TiledLayer properties 为空的问题
  • 修复 once 事件监听器无法阻断下层触摸事件的问题
  • 修复 ActionManager removeAllActions 的泄漏风险
  • 修复 MotionStreak 的颜色类型问题
  • 修复 MotionStreak 不支持延迟加载的问题
  • 修复 ScrollView 中 content 的定位偏差
  • 修复 SHOW ALL 模式下导致的触摸位置偏移问题
  • 修复 CC_WECHATGAME 在子域中为 false 的问题
  • 修复节点开启 RichText 控件导致子节点消失的问题
  • 修复 AudioEngine setFinishCallback 的使用体验问题
  • 修复 AudioEngine stopAllEffect 会把背景音乐停掉的问题
  • 修复 SpriteFrame 在修改 cap inset 设置时没有更新 uv 的问题
  • 移除 cc.sys.dumpRoot 和 cc.sys.cleanScript
  • 修复设置帧率导致模拟器和原生平台闪屏的问题
  • 修复 Windows 平台 Label 换行后显示为红色的问题
  • 修复 Mac 平台模拟器占用 CPU 过高的问题
  • 修复原生平台中 Audio.State 缺失的问题
  • 修复原生平台 sys.getNetworkType 和 getBatteryLevel 未适配的问题
  • 修复原生平台 Editbox 编辑过程中可能产生的报错
  • 修复 iOS 平台 video player 全屏请求的问题
  • 修复 iOS Safari 上 fullscreen video 退出无法清除的问题
  • 修复 Native 平台 Show / Hide 事件监听回调可能导致的崩溃问题
  • 修复 windows 平台从菜单栏唤醒程序时的偶发崩溃问题
  • 修复使用 SDKBox 引起的构建报错
  • 修复部分文档和 ts 代码提示错误
  • 修复部分 API 描述和废弃问题

V2.0.1版本

发布时间: 2018.08.23

2.0.0 是一个经历了大量底层重构的全新版本,部分开发者在升级项目过程中遇到了一些恼人的问题,这些问题我们一一收集并尽全力解决,现在为大家带来 2.0.1 版本。这个版本除了大幅度提升稳定性和项目升级的友好度以外,我们还为开发者带来了全新的微信小游戏开放数据域方案,大幅度提升开放数据域性能和使用的灵活度。

详细更新列表

FEATURE

  • 更新开放数据域方案
  • 提供微信平台清理缓存的 API
  • 支持微信小游戏和玩一玩平台通过 cc.game.setFrameRate 设置帧率
  • 为模拟器新增 View 菜单用于设置分辨率
  • 模块化 RenderTexture 和 DynamicAtlas

Editor 修复

  • 修复编辑器中粒子资源导入的问题
  • 修复 Label 在编辑器中不受节点 Anchor 改变影响的问题
  • 修复编辑器中设置 BMFont 字体报错
  • 修复部分 Particle 的颜色在 inspector 中无法显示和设置的问题
  • 修复模拟器改变尺寸界面不会适配的问题
  • 修复动画编辑器的曲线编辑器状态残留问题
  • 修复粒子系统在编辑器中的 svg 标示丢失的问题
  • 修复 Editbox 编辑 fontColor 不生效的问题
  • 修复动画编辑器在播放动画时切换 WrapMode 导致场景编辑器中节点无法拖动的问题
  • 修复节点 _localZOrder 数据保存时持续变化的问题
  • 修复编辑器选中节点后键盘方向键无法微调位置的问题
  • 修复场景编辑器选中节点后不会在层级管理器中自动定位的问题
  • 修复节点树在删除节点后自动展开的问题
  • 修复 inspector 面板中点击节点层级管理器不会自动定位的问题
  • 优化 Console 自动滚动体验
  • 修复切换父节点 active 状态时所有子节点全部展开的问题
  • 修复点击 Hierarchy 节点时的闪动问题
  • 修复 Auto Atlas 预览失效问题

Engine 修复

  • 修复 Spine 动画的渲染问题
  • 修复 shader 精度导致的动画抖动
  • 修复节点 inactive 状态下设置属性对 Sprite 影响不生效的问题
  • 修复 Tiled 类型 Sprite 在贴图旋转情况下的渲染错误
  • 修复开放数据域中背景无法透明的问题
  • 修复 Graphics 顶点数过多时的渲染错误
  • 修复 Camera 缩放后部分位置不响应事件的问题
  • 修复 Camera 缩放后 Tilemap 的剪裁问题
  • 修复 RichText 子节点的复用导致的状态错误
  • 修复 IE11 支持
  • 修复 qqplay 不支持 base64 格式的 Particle 贴图问题
  • 修复 Spine 调试插槽在 Release 版本不可用的问题
  • 修复各个平台前后台切换事件的问题
  • 修复 Label 在切换为 BMFont 类型时由 blend function 导致的渲染错误
  • 修复 qqplay 平台在 Android P 系统下的黑屏
  • 修复 Windows 平台 XMLHttpRequest GET 结果为 timeout 的问题
  • 修复 AudioClip 不支持延迟加载的问题
  • 补充缺失的 deprecation API,修复发现的 API 文档问题
  • 修复多个 Mask 共存时 Stencil 会被最后一个 Mask 覆盖的问题
  • 修复开放数据域中 Mask 组件的黑边问题
  • 修复 Mask 使用 image stencil 时不支持延迟加载的问题
  • 修复 Spine 在非调试模式下无法显示调试插槽的问题
  • 修复 Native 平台在勾选 MD5 时音频无法播放的问题
  • 增强 Particle 资源的容错,支持 effecthub 导出的资源格式
  • 修复 resume 可以直接播放未播放过的音频的问题
  • 修复包含 Mask 模块并剔除 Graphics 模块时导致的 Graphics 缺失问题
  • 修复 Native 平台按钮在 active 为 false 时仍然可以收到触摸事件
  • 修复 Web 平台 VideoPlayer 切换 visibility 时视频没有隐藏的问题
  • 修复 windows & mac 模拟器窗口大小改变时不会自动适配的问题
  • 修复 Tilemap parser 的解析问题
  • 修复 Camera 使用 RenderTexture 截图时不支持 mask 的问题
  • 修复多个 Graphics 互相切换时导致的报错
  • 修复粒子系统中粒子最后消失时最终 alpha 无效的问题(不透明)
  • 优化细小的文字渲染在 Native 平台上的表现
  • 修复安卓平台返回键的监听失效
  • 修复 iOS 平台弹出输入框后点击输入框会消失的问题
  • 修复 iOS 平台输入中文字符时的乱码问题
  • 优化输入框的完成按钮设计
  • 修复微信小游戏中输入表情图异常的问题
  • 优化 TiledTile 的 API 设计(不允许设置 layer,自动获取)
  • 修复六边形 TileMap 使用 TiledTile 时的偏移问题
  • 修复原生平台 FileUtils writeStringToFile 调用时崩溃问题 

REMOVED & DEPRECATION

v1.x 的大量私有以及非核心 API 被移除或废弃,详细内容可以参考升级指南.

相关资源

  • [
  • []
  • []
  • []

V2.0版本

发布时间: 2018.08.03

经历了大规模的底层重构和为期两个月的稳定性迭代,Cocos Creator v2.0 终于和大家见面了。总体上来说,Cocos Creator v2.0 设计的核心目标有两点:

  • 在 Web 和小游戏平台,大幅提升引擎基础性能
  • 提供更高级的渲染能力和更丰富的渲染定制空间

为了完成这个目标,我们彻底重写了底层渲染器,从结构上保障了性能的提升和渲染能力的升级。同时,为了保障用户项目可以更平滑得升级,我们几乎没有改动组件层的 API。当然,这些改动并不是对用户完全透明的,比如引擎加载流程、事件系统、引擎整体 API 的精简和重组,这些都会带来对用户层 API 的影响,我们希望通过升级指南、文档和 deprecation 信息等方式帮助大家升级。

编辑器

  • 实现了 Texture 的 premultiply alpha,filter mode,wrap mode 配置
  • 将混合模式配置抽象到 RenderComponent 组件基类中,所有渲染组件都可以配置
  • Camera 组件升级,作为直接的渲染入口,可配置各项基础渲染参数
  • 集成 Quick Compile,自定义引擎只需要使用菜单的 “开发者选项” -> “编译引擎” 可在几秒内快速编译完成
  • 将微信小游戏开放数据域独立为一个发布平台,拥有独立的发布面板

引擎

  • 添加基于 3D 引擎的新渲染器
  • 渲染组件实现全面升级
  • 彻底移除渲染树,由渲染组件直接组装渲染数据并提交渲染
  • 精简 cc 命名空间 API
  • 精简 Director API
  • Camera 组件升级
  • 启动流程升级,用户脚本和插件脚本可以更容易干预引擎初始化
  • 平台相关启动代码独立分离,更易于定制
  • 事件系统优化,区分节点树上通过捕获冒泡机制派发的系统事件和直接派发的普通事件
  • Fit Width & Fit Height 同时勾选的适配模式兼容微信小游戏平台
  • 正式增加了 RenderTexture 资源类型,可以保存摄像机中截取的渲染内容
  • 简化 TiledMap 功能,为后续的升级做铺垫
  • 物理引擎升级,性能优化

REMOVED & DEPRECATION

  • ?v1.x 的大量私有以及非核心 API 被移除或废弃,详细内容可以参考升级指南和 []

相关资源

  • ]
  • []
  • []

Known Issues

  • 目前 2.0 版本存在着在原生平台上引擎渲染性能可能下降的情况,对特定的游戏可能会有较明显的影响,建议开发中的原生平台项目谨慎升级。我们后续会进行优化。

20678閲戠畻鐩樺紑濂樼粨鏋淈/h2> 发布时间: 2018.08.13

v1.10.1 是对不久前发布的 v1.10.0 的缺陷修复,建议所有 1.10 用户及时更新版本。该版本不是 2.0 的替代版本,2.0 仍然是目前的最新版,新项目仍然建议直接上 2.0。作为 2.0 之前的最后一个大版本,我们会尽量维护到稳定为止,以支持暂时无法升到 2.0 的用户。良好的品质离不开用心的打磨,非常感谢各位开发者通过论坛、GitHub、Cocos 技术服务等渠道反馈的意见。让我们共同期待即将发布的 2.0.1!

20678閲戠畻鐩樺紑濂樼粨鏋淈/h2>

Editor

  • 修复微信子包相关问题
  • 修复项目构建后 project.js 可能为空的问题
  • 修复 QQ 玩一玩构建报 bkgame 相关错误
  • 修复项目中包含大量碎图时,刷新预览或者预览时保存场景会导致编辑器卡顿的问题
  • 修复构建面板不勾选“Source Maps”时,微信开发者工具报错
  • 修复启用 MD5Cache 以后,vConsole 不显示的问题
  • 修复 mac 平台偏好设置内无法选取 .app 程序的问题
  • 动画编辑器上增加了新建 clip 的按钮
  • 层级管理器细节完善

Engine

  • 修复 audioEngine 的 isLoop 始终返回为 false 的问题
  • 修复 Label 组件在使用 TTF 字体的情况下,文本高度发生偏移的问题
  • 完善 QQ 玩一玩下的 EditBox 的文本显示
  • 修复安卓视频播放相关问题

20678閲戠畻鐩樺紑濂樼粨鏋淈/h2> 发布时间: 2018.07.31

v1.10 版本相比 v1.9 新增了大量特性,重构了引擎的资源部分,大幅度优化了 settings.js 文件的体积。此外,1.10 还在微信小游戏及 Web、原生平台上都支持了游戏代码分包功能。这样一来便能够突破微信首包 4MB 的限制,并且提升游戏载入速度,详见。与此同时,1.10 对不少编辑器代码进行了重写,提升了编辑器的使用体验和性能。
如果您的项目计划升级到之后的 v2.0,请提前升级到 v1.10,这样能保证整个升级过程尽量平滑。

资源升级

从 10 开始,Cocos Creator 对底层资源类型进行了重构,大多数项目不受影响,但有些项目可能会收到一些警告,详情请查阅。

 编辑器

  • 大幅优化发布后的js 文件体积。
  • 在文件夹对应的属性检查器中添加了脚本分包设置。
  • 允许每个项目单独设置自定义引擎。
  • 在层级管理器中增加节点锁定功能,当鼠标移到节点上,左侧会有一个锁定按钮,节点锁定后无法在场景编辑器内选中该节点。
  • 在 Prefab 资源文件的属性检查器中,增加了“优化策略”选项,用于优化 Prefab 创建时间。详见预制资源:设置优化策略。
  • 优化 Windows 下的主菜单。
  • 为构建面板中的场景列表增加自动刷新功能。
  • 发布到原生平台时,同样支持在文件命名中添加 MD5,方便进行热更新。
  • 脚本编译将自动跳过所有 .d.ts 文件,避免 TypeScript 报错。
  • Console 面板增加了 Clear on Play 选项,用于在游戏预览前,自动清空日志。
  • 调整 Console 面板的文本字体和颜色。
  • 在层级管理器和资源管理器的搜索栏中加入了搜索选项按钮。
  • 在插件商店中新增了已装插件管理功能。
  • 允许更改控件库中的自定义控件图标。
  • 资源管理器增加对 aac 和 pcm 扩展名音频文件的识别。
  • 支持在资源管理器搜索 uuid 时直接搜索压缩后的 uuid 格式。
  • 允许使用鼠标右键拖拽 Timeline 编辑器的时间轴。
  • 在 Dashboard 的系统托盘图标上增加了退出菜单。

 引擎

  • 支持游戏脚本分包加载,详见。
  • Widget 组件新增 align mode 属性,设置为 ON_WINDOWS_RESIZE 后将在窗口大小改变时自动刷新。
  • 正式支持了和  资源类型的加载。
  • 原生平台增加了  和  接口,用于获取设备电量和网络状态。
  • 原生平台热更新时,将会主动把旧版的资源文件删掉。
  • VideoPlayer 增加音量调节和静音功能。
  • 增加 DragonBones 原生平台绑定接口 getSlots , replaceSlotDisplaySlot.name (感谢 @feijing566)。
  • TiledMap 支持 Web 平台上任意方向的正交(ortho)地图的渲染裁剪。
  • Layout 组件将只对 active 的节点进行排版。
  • 默认在安卓 UC 浏览器上启用 retina 渲染。
  • 在 UC 浏览器 11 版本以上启用 Webgl。
  • 增加对 UCBS 浏览器的识别。
  • 重力感应调整为只在开发者有注册事件时才进行获取。

 Bug Fixes

  • [Editor] 修复设置图集中的 SpriteFrame 时的卡顿。
  • [Editor] 修复模拟器配置保存相关问题。
  • [Editor] 修复模拟器输出到 Console 的错误信息显示成白色的问题。
  • [Engine] 修复资源导出工具在遇到相同的父文件夹名时的错误。
  • [Engine] 修复编辑器下拷贝自动同步的 Prefab 子节点可能出错的问题。
  • [Engine] 修复构建时自动图集中的碎图纹理如果直接被其它资源引用,将会报错的问题。
  • [Engine] 修复插件脚本未正确解析 CC_WECHATGAME 和 CC_QQPLAY 关键字的问题。
  • [Engine] 修复场景切换或者节点销毁时,动画可能没有停止播放的问题。
  • [Engine] [Wechat] 修复某些版本的微信小游戏获取每帧间隔时间的问题。
  • [Engine] [Wechat] 修复安卓微信小游戏上的 RenderTexture 相关问题。
  • [Engine] [QQPlay] 修复 QQ 玩一玩上资源会重复下载的问题。
  • [Engine] 修复 Slider 组件的滑块拖动时位置可能不对的问题。
  • [Engine] 修复音频的 load 事件有可能重复触发的问题。
  • [Engine] 修复用户在 deactivate 节点的同时改变层级的话,没有任何报错的问题。
  • [Engine] 修复 WebView 在一些平台上的 Safari 浏览器中无法隐藏的问题(iOS 9/10 或 Mac)。
  • [Engine] 修正原生平台 BMFont 渲染间距问题。
  • [Engine] 修复在 Canvas 在未勾选 Fit Width 和 Fit Height 时按钮的触摸区域会发生偏移的问题。

升级安卓 SDK

从 v1.10 开始,安卓构建面板中的 API Level 指定的是编译出的 apk 所支持的最低 Android 版本,建议选择 14。 targetSdkVersioncompileSdkVersion buildToolsVersion 都升级到了 26。
如果开发者有其它需要,可以手动修改 proj.android-studio/app/build.gradeproj.android-studio/gradle.properties

REMOVED

  • 移除了 Eclipse 和 Ant 构建安卓平台的支持。
  • 移除了 Chipmunk 的支持。
  • 移除了loader.loadRes 直接加载图集中的子 SpriteFrame 的支持,请先加载图集再调用 atlas.getSpriteFrame(name)

DEPRECATION

  • 10.0 起,不再推荐使用 Texture2D.releaseTexture,请用 Texture2D.destroy 代替。
  • 8.2 起,不再推荐使用 cc.eventManager,请用 cc.EventTarget 或 cc.systemEvent 代替,原有 API 将在 2.0 移除。
  • 8.2 起,不再推荐使用 cc.inputManager,请用 cc.systemEvent 的相同接口代替,原有 API 将在 2.0 移除。
  • 8.2 起,不再推荐使用 dragonBones.CCFactory.getFactory,请用 dragonBones.CCFactory.getInstance 代替,原有 API 将在 2.0 移除。

 KNOWN ISSUES

  • 在资源管理器中复制粘贴资源时,资源属性仍不会跟着拷贝。(Since 1.9.0)
  • 安卓原生平台不支持播放远程视频。

V1.9.3版本

发布时间: 2018.07.06

v1.9.3 是对不久前发布的 v1.9.2 的缺陷修复,主要完善了对微信小游戏及 QQ 玩一玩的支持,建议所有 1.9 用户及时更新引擎版本,获得更好的体验。良好的品质离不开细心的打磨,非常感谢各位开发者通过论坛、GitHub、Cocos 技术服务等渠道提交的 BUG 反馈。

动画编辑器

  • 修复动画编辑器保存动画时,数据有可能不全的问题
  • 修复动画编辑器直接编辑 Texture 动画会报错的问题
  • 修复动画编辑器无法添加 size 下的 width 以及 height 属性的问题

微信小游戏

  • 修复在微信小游戏上只能播放单个音频并且音频播放次数有限的问题
  • 修复微信小游戏音频无法停止的问题
  • 修复 Android 微信小游戏重力感应方向和取值不对的问题
  • 修复微信小游戏中无法提交 TypedArray 格式贴图的问题
  • 修复在旧版微信上帧率显示异常的问题
  • 完善微信小游戏视频播放支持
  • 向下兼容微信小游戏 1.7.4 版本基础库

QQ 玩一玩

  • 修复 QQ 玩一玩上只能播放单个音频并且音频播放次数有限的问题
  • 修复 QQ 玩一玩上游戏加载过程中无法操作引擎对象的问题
  • 修复 QQ 玩一玩粒子播放卡死问题
  • 修复 QQ 玩一玩上半透明文本会渲染成黑色的问题

DragonBones

  • 修复 DragonBones 在原生平台上重复赋值骨骼可能会导致崩溃的问题
  • 修复手动 clear DragonBones 的 TextureData 会报错的问题

其它

  • 修复 Web 和安卓平台的文本框 Input Flag 无效的问题
  • 修复 Label 渲染有关问题
  • 修复 cc.game 的 EVENT_HIDE 和 EVNET_SHOW 回调可能会被多次调用的问题

V1.9.2版本

发布时间: 2018.05.31

v1.9.2 是对不久前发布的 v1.9.1 的小幅升级,主要提升了对微信小游戏及 QQ 玩一玩的支持,建议所有需要上微信小游戏或 QQ 玩一玩的项目进行升级。

注意事项:

  • 该版本修复了之前 ZERO 混合模式无效的问题,如果升级后发现有图片颜色不对,请检查 Sprite 组件的混合模式是不是被设成了 ZERO,是的话改回默认值即可。
  • 该版本重写了动画编辑器,如果有遇到相关错误,麻烦到论坛反馈,我们会尽快进行修复。

详细改动如下:

Features

  • [Editor] [Timeline] 动画编辑器可对 “丢失的节点” 进行编辑,并且允许迁移节点数据;
  • [Editor] [Timeline] 动画编辑器支持同时复制粘贴多个节点上的关键帧;
  • [Editor] [Timeline] 动画编辑器若干体验优化;
  • [Editor] 将 QQ 玩一玩和微信小游戏的适配层代码放置到编辑器的 Contents/Resources/builtin 目录下,方便用户升级;
  • [Engine] 升级 Facebook Instant Games SDK 到 6.2;
  • [Engine] 优化 Label 在非原生平台的内存占用。

微信小游戏

  • 修复微信小游戏 AudioSource 组件在销毁时可能会报错的问题;
  • 优化微信小游戏上声音的实现;
  • 在微信小游戏的 game.json 中改用 `openDataContext` 定义开放数据域,开放数据域的入口文件改为 `index.js`;
  • 修复微信开放数据域中加载远程资源的问题;
  • 修复微信小游戏上加载 plist 粒子时可能会出现的报错;
  • 修复微信小游戏中调用 cc.RenderTexture.create 导致的 gl.texImage2D 报错;
  • 修复在旧版本上微信获取微信小游戏开放数据域时的报错;
  • 允许在微信小游戏的开发者工具上模拟通过 `cc.sys.os` 获取的系统信息;
  • 修正在旧版本微信上无法正确识别子域的问题。

 QQ 玩一玩

  • 优化 QQ 玩一玩上声音的实现;
  • 修复 QQ 玩一玩在 iOS 10 以下蓝屏的问题;
  • 修复 QQ 玩一玩上加载 plist 粒子时可能会出现的报错;
  • 修复在 Windows 下发布到 QQ 玩一玩 时插件脚本加载异常;
  • 完善 QQ 玩一玩的 XMLHttpRequest 的 header 处理;
  • 完善 QQ 玩一玩的 userAgent;
  • 修正 QQ 玩一玩文本描边效果。

Bug Fixes

  • [Editor] 修复 AudioSource 和 MotionStreak 组件的文档链接;
  • [Editor] 修复编辑器预览动画时,如果动画对节点的 active 进行修改有可能报错的问题;
  • [Editor] 修复在登录服务器宕机时无法进入编辑器的问题;
  • [Editor] 修复多次拖到同一个 prefab 作为其它 prefab 的子节点会报错的问题;
  • [Engine] 修复 Web 平台上无法将 Sprite 的 blend mode 设置为 ZERO 的问题;
  • [Engine] 修复了 cc.sequence 中嵌套其它调用过 repeat 方法的 action 时在特殊情况下会导致速度不正常的问题;
  • [Engine] 修复场景切换后可能导致 Sprite 报错的问题;
  • [Engine] [JSB] 解决在 JS 层创建 cc.GLProgram 并添加进 cc.shaderCache 后出现触发断言的问题;
  • [Engine] [JSB] 修复原生平台物理引擎绑定问题;
  • [Engine] [Native] 修正原生平台上 cc.Sprite.FillType 枚举类型错误;
  • [Engine] [UI] 修复当滚动视图同时启用垂直、水平滚动,并且内部尺寸过小时可能引起的定位问题;
  • [Engine] [Audio] 修复重复调用 audioEngine.resume 会从头播放的问题。

V1.9.1版本

发布时间: 2018.04.20

v1.9.1 版本是对不久前发布的 v1.9.0 的一次小幅升级,主要提升了对微信小游戏及 QQ 玩一玩的支持。

20678閲戠畻鐩樺紑濂樼粨鏋淈/h2>

微信小游戏

- 支持将整个项目发布到微信小游戏子域,详见。
- 支持微信小游戏在构建面板中配置 **远程服务器地址** 选项,方便下载远程资源
- 支持在微信小游戏真机上使用 TTF 字体
- 把微信小游戏的适配层从 ES6 转成 ES5,用户可以不启用 ES6 转 ES5
- 修复微信小游戏中潜在的音频内存泄漏

QQ 玩一玩

- 支持 QQ 玩一玩在构建面板中配置 **远程服务器地址** 选项,方便下载远程资源。
- 修复 QQ 玩一玩上 XMLHttpRequest 的一些小 bug
- 修复 QQ 玩一玩构建时无法解析 js 路径的问题
- 完善 QQ 玩一玩上多点触摸的支持
- 增加 QQ 玩一玩对 base64 编码图片的支持
- 完善 QQ 玩一玩适配层
- 完善 QQ 玩一玩的音频支持
- 修复 QQ 勾选 MD5 Cache 后的黑屏问题

其它更新

- [Editor] [Build] 修复定制项目构建模板功能在 Facebook Instant Games 平台不生效的 bug
- [Editor] [Build] 添加 build-start 事件,方便用户构建之前做一些自己想要做的处理
- [Engine] [Wechat] 修复微信小游戏音频无法停止的问题
- [Engine] [iOS] 修复 iOS 8-9 上面 isTypedArray 方法失效的问题
- [Engine] [Web] 修复粒子系统还未激活就移除的话会导致内存泄露问题
- [Engine] cc.isValid 增加了一个可选参数,传入 true 将在 destroy 的当帧开始就返回 false
- [Engine] [Android] 修复 jni 上的一个内存泄露问题

 DEPRECATION

- v1.8.2 起,不再推荐使用 cc.eventManager,请用 cc.EventTarget 或 cc.systemEvent 代替,原有 API 将在 2.0 移除。
- v1.8.2 起,不再推荐使用 cc.inputManager,请用 cc.systemEvent 的相同接口代替,原有 API 将在 2.0 移除。
- v1.8.2 起,不再推荐使用 dragonBones.CCFactory.getFactory,请用 dragonBones.CCFactory.getInstance 代替,原有 API 将在 2.0 移除。

KNOWN ISSUES

- 在资源管理器中复制粘贴资源时,资源属性仍不会跟着拷贝。(Since 1.9.0)

QQ 玩一玩已知问题:

目前 QQ 玩一玩仍在灰度测试中,开发者也需要获取内测资格才能进行开发,而且暂时仅支持在 Mac 上进行编译。此外,我们对 QQ 玩一玩的适配工作还未完全结束,目前仍不支持以下模块:
- Label:不支持 TTF,系统字体也只能使用默认字体
- 粒子系统:不支持 plist 中存储贴图数据,只支持贴图 URL
- WebView
- VideoPlayer
- DeviceMotion

以上功能预计在以后的更新中逐个支持。我们也将持续与玩一玩工程师们紧密沟通,不断优化适配效果。

V1.9版本

发布时间: 2018.03.14

美国时间 3 月 14 日 Facebook 正式对外开放 Instant Games 平台,给所有开发者一个公平的机会可以进入和拓展海外市场。Cocos 引擎作为 Facebook Instant Games 平台的官方合作伙伴,不仅仅在技术接入方面深度合作,游戏开发上支持一键发布游戏;在内容引进方面,更是国内首家 Facebook 官方授权的 Instant Games 游戏接入合作商。所以本次发布的 v1.9.0 正式版本既是对  v1.8.2 的一次功能更新,提升了编辑器的易用性,修复了一些功能缺陷,更主要增加了 Facebook Instant Games 及 QQ 玩一玩的支持,该版本目前已经完整实现三大平台一键平滑支持。建议所有开发中的项目进行升级。

20678閲戠畻鐩樺紑濂樼粨鏋淈/h2>

 Features

- 支持 Facebook Instant Games []
- 支持 QQ 玩一玩
- [Editor] 资源管理器直接支持复制粘贴资源(可通过右键菜单或快捷键)
- [Editor] 在场景编辑器的 Rect 编辑模式下,支持拖动节点的空白区域,便于更改 anchor 的值
- [Editor] 在粒子组件的属性检查器上新增“同步”按钮,点击同步将把 Custom 参数设为和 File 一致。(同步按钮仅在勾选 Custom 并且设置了 File 时才可用)
- [Editor] 在 Timeline 中增加 scale 属性,便于同时编辑 scaleX 和 scaleY
- [Engine] PhysicsManager 新增 FIXED_TIME_STEP 和 MAX_ACCUMULATOR 两个参数

Bug Fixes

- [Engine] [Web] 修复在部分小米自带浏览器上输入框无法弹出的问题
- [Engine] 修复勾选 MD5 构建后音频可能无法停止的问题
- [Engine] 修复 Label 的描边可能被截断一个像素的问题
- [Engine] 修复 cc.Class 构造函数中的异常无报错信息的问题
- [Engine] [Animation] 修复当 Animation 组件切换动画或手动设置 AnimationState 时间后,会少播放一帧的问题
- [Engine] [Wechat] 修复 iOS 微信小游戏本地代码包超过 4MB 后使用远程服务加载会失败的问题

DEPRECATION

- v1.8.2 起,不再推荐使用 cc.eventManager,请用 cc.EventTarget 或 cc.systemEvent 代替,原有 API 将在 2.0 移除。
- v1.8.2 起,不再推荐使用 cc.inputManager,请用 cc.systemEvent 的相同接口代替,原有 API 将在 2.0 移除。
- v1.8.2 起,不再推荐使用 dragonBones.CCFactory.getFactory,请用 dragonBones.CCFactory.getInstance 代替,原有 API 将在 2.0 移除。

KNOWN ISSUES

- 在资源管理器中复制粘贴资源时,资源属性仍不会跟着拷贝。(Since 1.9.0)
- 在原生平台上,调用 `action.easing(cc.ease***)` 方法的话,可能会引起节点逻辑数据不同步。请改用 `cc.ease***(action)`。(Since 1.8.2)

20678閲戠畻鐩樺紑濂樼粨鏋淈/h2>

目前 QQ 玩一玩仍在灰度测试中,开发者也需要获取内测资格才能进行开发,而且暂时仅支持在 MacOS上进行编译。此外,我们对 QQ 玩一玩的适配工作还未完全结束,目前仍不支持以下模块:
- Label:不支持 ttf,系统字体也只能使用默认字体
- 粒子系统:不支持 plist 中存储贴图数据,只支持贴图 url
- WebView
- VideoPlayer
- DeviceMotion

其他详细功能请参考 v1.8.2 功能列表。以上暂未支持功能预计在今后的更新中逐个实现,我们也将持续与玩一玩工程师们紧密沟通,不断优化适配效果。

V1.8.2版本

发布时间: 2018.03.09

做为年后推出的第一个正式版本,虽然是小版本,重在修复上个版本遗留 bug,但我们还是诚意满满的做出了如下重点改动:完善微信小游戏支持、修复了这些 bug:包括 iOS 平台崩溃问题、用 OBB 替换 AABB 的包围盒检测方式、touch cancel 事件问题等,推荐正准备使用 Creator 的新用户直接开搞 v1.8.2,老用户请记得优化升级!

更新说明

  • 完善微信小游戏的支持
  • 修复部分 iOS 平台崩溃问题
  • 引擎场景点选所用的 hit test 包围盒检测方式由 AABB 改为 OBB,提高了对旋转后节点的点选精度
  • 修复引擎没有处理 touch cancel 事件问题
  • 修复一些较老的台式机上使用 Chrome 运行帧率低的问题

20678閲戠畻鐩樺紑濂樼粨鏋淈/h2>

微信小游戏

  • 在唤起微信开发者工具的时候,监听错误信息并提示给用户
  • 提供默认的游客 appid,方便开发者进行测试
  • 修复不支持加载远程路径的问题
  • 修复文件夹不存在导致 fs.save 失败的问题
  • 修复自带的 TypeScript Hello World 工程在微信小游戏上的 Promise 问题

FEATURES

  • [Engine] 场景点选所用的 hit test 包围盒检测方式由 AABB 改为 OBB,提高了对旋转后的节点的点选精度
  • [Editor] 调整项目设置中的设计分辨率有关选项

BUG FIXES

  • [Editor] 修复在 Timeline 内右键点击 event 然后点击 delete,无法真正删除的问题
  • [Editor] 修复默认新建的脚本中若干错误
  • [Editor] 修复 Windows 平台 creator.d.ts 中 `__ctor__` 引起的乱码
  • [Engine] 修复引擎没有处理 touch cancel 事件的问题
  • [Engine] 修复节点层级改变后注册的事件有可能丢失的问题
  • [Engine] [Web] 修复在一些较老的台式机上使用 Chrome 运行时帧率很低的问题
  • [Engine] [UI] 修复 EditBox 限制长度时如果使用某些中文输入法的话会导致输入到一半被截断的 bug
  • [Engine] [Physics] 修复 RigidBody.allowSleep 未能正确设置的错误
  • [Cocos Analytics] 修复原生平台未启用 Cocos 数据统计 SDK 仍会提示未初始化的问题
  • [Engine] [Web] 修复 Windows 发布的 Web 项目可能有性能问题
  • [Engine] [Web] 修复音频在加载过程中被 stop 而后 play 无法播放的问题
  • [Engine] [Web] 修复 render texture 截图可能不完整的问题
  • [Engine] 修复 cc.path.dirname 错误的返回值
  • [Engine] 修复在 schedule 回调中 unschedule 和再次 schedule 当前回调函数触发的 JS 异常问题
  • [Engine] [Android] 修复安卓上 VideoPlayer 无法重复 play 的问题
  • [Engine] [Native] 修复 DragonBones 重启游戏时的内存泄露问题
  • [Engine] [Native] 修复 Spine 的 SkeletonRenderer 的内存泄露问题
  • [Engine] [Native] 修复 cc.Scheduler.schedule 不支持只传入 3 个参数的问题
  • [Engine] [Native] 修复 JS 浮点数转换到字符串时出现多余的 0 的问题
  • [Engine] [Native] 移除原生平台部分多余的 lineHeight 警告
  • [Engine] [Native] 修复原生平台未定义 cc.Scheduler.pauseAllTargets 和 cc.Scheduler.pauseAllTargetsWithMinPriority 的问题
  • [Engine] [Native] 修复 Windows、Mac 平台上鼠标滚轮事件不触发的问题
  • [Engine] [Native] 解决原生平台低概率的 WebSocket 关闭时的崩溃问题
  • [Engine] [Native] 解决退出游戏时的低概率崩溃问题
  • [Engine] [Native] 解决使用 cc.spawn 导致的潜在崩溃问题
  • [Engine] [Native] 解决 Node 关联的 Action 无法被释放的内存泄露
  • [Engine] [iOS] 解决 iOS 平台上 JS 代码异常导致低概率的异常处理过程中的崩溃问题
  • [Engine] [iOS] 解决 iOS 平台上调用 cc.callFunc 时的低概率崩溃问题
  • [Engine] [iOS] 解决 iOS 平台上创建 cc.Sequence 时的低概率崩溃问题
  • [Engine] [Native] 解决原生平台频繁修改 button 的 interactable 时的潜在崩溃问题

PERFORMANCE IMPROVEMENTS

[Engine] [JSB] 优化原生平台导出的 jsb_polyfill 脚本体积

DEPRECATION

  • 不再推荐使用 cc.eventManager,请用 cc.EventTarget 或 cc.systemEvent 代替,原有 API 将在 2.0 移除。
  • 不再推荐使用 cc.inputManager,请用 cc.systemEvent 的相同接口代替,原有 API 将在 2.0 移除。
  • 不再推荐使用 dragonBones.CCFactory.getFactory,请用 dragonBones.CCFactory.getInstance 代替,原有 API 将在 2.0 移除。

BREAKING CHANGES

cc.Texture2D.initWithData 方法不再支持传入最后一个可选参数 contentSize。

KNOWN ISSUES

在原生平台上,调用 action.easing(cc.ease***) 方法的话,可能会引起节点逻辑数据不同步。请改用 cc.ease***(action)

MAC数字证书升级

111wechatimg80
222wechatimg81

?如果 Mac 版下载后无法打开,提示 dmg 或者 app 文件已损坏,或者来自身份不明的开发者,这是因为我们升级了数字证书引起。
解决方法在 Finder(访达)中右键点击 dmg 或 app 文件,选择“打开”,然后在弹出对话框中再次点击打开即可。为了下一次可以直接打开,请进入系统偏好设置 -> 安全性与隐私,点击“仍要打开”。
如果这样操作仍无法打开,请联系我们。变通方法是先命令行里执行 sudo spctl --master-disable,再验证账户密码,就能打开了。
有任何安装、升级、使用过程中出现的问题,欢迎直接到社区 发帖提交反馈。
当然如果你希望轻轻松松无需做任何平台移植工作就能一键编译发布到微信小游戏调试环境,那么记得在今天下载 试试吧!

V1.8.1版本

发布时间: 2018.01.18

引擎团队秉承发布小版本重在修复而不是增加大功能的一贯理念,本次发布的 v1.8.1 版本主要在 1.8 的基础上修正 bug、完善微信小游戏支持,修复了一些原生平台崩溃问题,建议所有开发中的项目进行升级。 

微信小游戏

  • [Editor] 发布到微信小游戏时,默认禁用 ES6 to ES5 选项 
  • [Engine] 修复 1.8.0 网页中无法引入微信 jssdk,会导致环境误判的问题 
  • [Engine] 修复在微信小游戏上前后台切换时,EVENT_SHOW, EVENT_HIDE 不会触发的问题 

特色功能

  • [Editor] 在 Windows 上双击脚本时先提示用户设置脚本编辑器,避免系统默认 Host 弹出报错 
  • [CocosStudio] 完善 CocosStudio 项目导入 
  • 不再为 Position 为 0% 的节点添加 Widget 组件 
  • 支持导入动画帧事件 
  • 修复导入多层嵌套的动画不能正确关联的问题 
  • [Engine] 新增获取 iPhone X safe area 的接口(cc.view.getSafeAreaRect 和 cc.director.getSafeAreaRect) 
  • [Engine] 自动隐藏原生 iPhone X 的 home indicator

另外,上面的改动大部分包含在了之前社区里发布的 。 相比 1.7.2版本,v1.8.1 除了支持微信小游戏以外,还新增了以下改动:

  • [Editor] 修复特殊情况下发布后的项目 JS 会包含无效符号的问题 
  • [Engine] 修复 creator.d.ts 中 __ctor__ 引起的乱码 
  • [Engine] 修复原生平台上 TiledMap 潜在的内存释放问题 
  • [Engine] 修复原生平台 invokeJSTouchOneByOneCallback 内潜在的崩溃问题 
  • [Engine] [JSB] 修复 1.7.0 以后原生平台上 TiledMap 未绑定 getTiles 接口的问题 
  • [Engine] [JSB] 修复 JS 获取原生的 Scheduler, ActionManager, EventDispatcher 等对象后有概率会崩溃的问题 
  • [Engine] [JSB] 修复 event.stopPropagation() 会停止所有 touch point 的问题 
  • [Engine] [JSB] 在 TextureCache 中添加回调函数用于通知纹理加入缓存与从缓存中移除 
  • [Engine] [JSB] 修复 iOS 在极端情况下的崩溃问题 
  • [Engine] [JSB] 修复在 iOS 9 以下 createTypedArray 返回 null 的问题 
  • [Cocos Analytics] 升级数据统计 SDK 到 1.0.5,解决 iOS Cocos Analytics 中的 BaseEvent 类与其它第三方库冲突的问题 

Bug 修复

  • [Editor] 修复特殊情况下发布后的项目 JS 会包含无效符号的问题 
  • [Engine] 修复 creator.d.ts 中 `__ctor__` 引起的乱码 
  • [Engine] 修复原生平台 invokeJSTouchOneByOneCallback 内潜在的崩溃问题 
  • [Engine] [JSB] 修复 JS 获取原生的 Scheduler, ActionManager, EventDispatcher 等对象后有概率会崩溃的问题 
  • [Engine] [JSB] 修复原生平台 event.stopPropagation() 会停止所有 touch point 的问题 
  • [Engine] [JSB] 修复 iOS 在极端情况下的崩溃问题 
  • [Engine] [JSB] 修复在 iOS 9 以下 createTypedArray 返回 null 的问题 
  • [Engine] [JSB] 修复 1.7.0 以后原生平台上 TiledMap 未绑定 getTiles 接口的问题 
  • [Engine] 修复原生平台上 TiledMap 潜在的内存释放问题 
  • [Editor] 修复场景编辑器错误的分布图标 
  • [Editor] 修复 Windows 下 MD5 Cache 会修改用户代码的问题 
  • [Engine] 修复 physics AABB 碰撞回调 
  • [Spine] 修复 spine 在调试模式下激活时会重复创建渲染对象的问题 
  • [Camera] 修复 camera 在原生平台上未激活时就启用的问题 
  • [Engine] 修复模块裁剪时只勾选 Intersection 的情况下获取不到 Intersection 的问题 
  • [Engine] 修复 ScrollView 被缩放后效果错误 
  • [Engine] 修复 RenderTarget 缩放问题 
  • [Engine] 修复 PageView.scrollToPage 不能正确判断范围的问题 
  • [TiledMap] 修复 Tilemap 的 layer 没有元素时的报错 
  • [DragonBones] 修复 Web 平台上 DragonBonesData 名字相同,骨骼数据不同时无法正确加载的问题 
  • [Engine] 修复 Component.schedule 有可能引发 “element's paused should be paused” 报错的问题 
  • [Engine] 修复鼠标事件冒泡相关问题 
  • [Engine] [JSB] 修复 1.7.0 中原生平台未能调用 opengl 和 glNode 接口的 bug 
  • [Engine] [JSB] 修复 JSB 2.0 中的一些相关问题 
  • [Engine] [JSB] 修复原生平台 Scheduler.isTargetPaused 在 JS 中未定义的问题 
  • [Engine] [JSB] 完善 jsb.reflection.callStaticMethod 支持的参数类型 
  • [Engine] 移除安卓平台 x86 架构下的 SSE 支持,以便修复部分安卓模拟器上的运行问题 
  • [Engine] 修复安卓 APP_PLATFORM >= 22 时的编译错误 
  • [Engine] 修复 Layout 的子节点顺序改变后未能刷新排序的问题 
  • [Engine] 修复场景常驻节点在原生平台 z order 失效的问题 
  • [Engine] 修复原生平台 ResizableBufferAdapter::resize 有关问题 
  • [Engine] 修复原生平台 socketio.emit 不传递 payload 参数时导致的异常 
  • [Engine] 修复原生平台 XMLHttpRequest 在超时的时候调用 onerror 而不是 ontimeout 的问题 
  • [Engine] [JSB] 修复原生平台 jsb.reflection.callStaticMethod 找不到类时的潜在内存泄露(Fixes potential memory leak if can't find class by jsb.reflection.callStaticMethod.) 
  • [Engine] 解决安卓 conversionEncodingJNI 内存泄露问题 
  • [Engine] 解决安卓 onWavClose 没有返回值的警告问题 
  • [Engine] 解决安卓长时间在后台且 Activity 被系统回收后切换前台导致的崩溃问题 
  • [Cocos Analytics] 解决 iOS 链接 Cocos Analytics 产生很多 deployment target 不匹配警告的问题 
  • [Cocos Analytics] 升级数据统计 SDK 到 1.0.5,解决 iOS 中的 Reachability 和 BaseEvent 类与其它第三方库冲突的问题 
  • [TiledMap] 修复由深度检测引起的 TiledMap 渲染异常 
  • [Engine] 修复网页平台同时勾选 Fit Height 和 Fit Width 后的适配问题 
  • [UI] 修复删除 Button 所用的 SpriteFrame 后引起的相关报错 
  • [UI] 完善 UI 文本自动换行规则 
  • [DragonBones] 修复龙骨事件丢失的问题 

性能优化

[Build] 大幅优化原生平台启用脚本加密后的脚本体积 

弃用

[UI] 添加 cc.ToggleContainer 组件,v2.0 中将会取代 cc.ToggleGroup。 

详见文档

github.com/cocos-creator/creator-docs/blob/master/zh/components/toggleContainer.md 

最近微信小游戏正搞得沸沸扬扬,发布 20 多天即达到了 3.1 亿用户。而且微信方面称,“请大家在未来的一个月内随时关注 mp.weixin.qq.com ”,也许这意味着小游戏很有可能将于一个月内开放注册。 
那么,为了把握住这一波浪潮,赶紧试着用「微信小游戏首发占半数的引擎」做一款小游戏吧!

V1.8版本

发布时间: 2017.12.28

早在微信官方正式发布小游戏平台之前,Cocos Creator 团队就和微信开发团队合作完成了 Cocos Creator 对微信小游戏平台的支持。在小游戏正式公布之后,我们也在第一时间发布了完美支持小游戏的 Cocos Creator v1.8。这篇文档的初衷也是希望帮助开发者们在第一时间以最顺畅的方式提交游戏到小游戏平台。

1

这篇文档将会覆盖:
1、小游戏的运行环境介绍
2、如何使用 Cocos Creator 发布微信小游戏
3、小游戏资源管理
与这篇文档搭配的还有一段,可以结合视频中的操作来理解,更加直观。

20678閲戠畻鐩樺紑濂樼粨鏋淈/h2>

微信小游戏是微信小程序下的游戏产品平台,它不仅提供了强大的游戏能力,还和小程序一样,提供了大量的原生接口,比如支付,社交,文件系统,照片,NFC 等。相当于同时结合了 WEB 易于传播以及 Native 功能丰富的优势。

小游戏的运行环境是小程序环境的扩展,基本思路也是封装必要的 WEB 接口提供给用户,尽可能追求和 WEB 同样的开发体验。小游戏在小程序环境的基础上提供了 WebGL 接口的封装,使得渲染能力和性能有了大幅度提升。不过由于这些接口都是微信团队通过自研的原生实现封装的,所以并不可以等同为浏览器环境。关于游戏方面,目前小游戏环境提供了 Canvas 以及 WebGL 的渲染接口,所以 Cocos Creator 引擎的两种渲染模式都是可以运行的,不过出于性能的考量,我们默认使用 WebGL 渲染游戏内容,强烈建议用户不要修改默认配置。

作为引擎方,为了尽可能简化开发者的工作量,我们为用户完成的主要工作包括:

1、引擎框架适配微信小游戏 API,纯游戏逻辑层面,用户不需要任何额外的修改
2、Cocos Creator 编辑器提供了快捷的打包流程,直接发布为微信小游戏,并自动唤起小游戏的开发者工具
3、自动加载远程资源,缓存资源以及缓存资源版本控制

除此之外,小游戏平台的游戏提交,审核和发布流程和小程序是没有区别的,都需要遵守微信团队的要求和标准流程,具体信息可以参考文末的链接。

20678閲戠畻鐩樺紑濂樼粨鏋淈/h2>

我们从 Cocos Creator v1.8 开始,支持 Cocos Creator 游戏一键发布为微信小游戏,下面是详细的发布步骤:

1、在微信公众平台下载微信开发者工具

2
4
p3
wechatimg16

2、在 "Creator 偏好设置" > "原生开发环境" 中设置微信开发者工具路径
3、登陆微信公众平台,找到 appid
4、在构建面板中设置项目名和 appid
5、构建发布
6、点击 play 打开微信开发者工具
7、预览部署

按照这样的流程,项目的 build 目录下就会生成一个微信小游戏的发布包,其中已经包含了微信小游戏环境的配置文件:game.json 和 project.config.json

7

20678閲戠畻鐩樺紑濂樼粨鏋淈/h2>

在小游戏环境中,资源管理是最特殊的部分,它和浏览器的不同在于下面四点:
1、小游戏的包内体积不能够超过 4mb,包含所有代码和资源,额外的资源必须通过网络请求下载。
2、对于从远程服务器下载的文件,小游戏环境没有浏览器的缓存以及过期更新机制。
3、对于小游戏包内资源,小游戏环境内并不是按需加载的,而是一次性加载所有包内资源,然后再启动页面。
4、不可以从远程服务器下载脚本文件。

这里引出了两个关键的问题,首页面加载速度和远程资源缓存及版本管理。对于首页面加载速度,我们建议用户只保存脚本文件在小游戏包内,其他资源都从远程服务器下载。而远程资源的下载、缓存和版本管理,其实在 Cocos Creator 中,已经帮用户做好了。下面我就来解释一下这部分的逻辑。

在小游戏环境中,我们提供了一个 wxDownloader 对象,给它设置了 REMOTE_SERVER_ROOT 属性后,引擎下载资源的逻辑就变成:
1、检查资源是否在小游戏包内
2、不存在则查询本地缓存资源
3、如果没有缓存就从远程服务器下载
4、下载后保存到小游戏应用缓存内供再次访问时使用

同时,当开启引擎的 md5Cache 功能后,文件的 url 会随着文件内容的改变而改变,这样当游戏发布新版本后,旧版本的资源在缓存中就自然失效了,只能从服务器请求新的资源,也就达到了版本控制的效果。

%e5%b1%8f%e5%b9%95%e5%bf%ab%e7%85%a7-2017-12-28-%e4%b8%8a%e5%8d%8811-31-50
8

具体来说,开发者需要做的是:
1、构建时,勾选 md5Cache 功能。
2、将小游戏发布包中的 res 文件夹完整得上传到服务器。
3、删除发布包内的 res 文件夹。
4、在 main.js 中,找到对应代码段并添加 REMOTE_SERVER_ROOT 的设置
5、对于测试阶段来说,可能你无法部署到正式服务器上,需要用本地服务器来测试,那么请在微信开发者工具中打开详情页面,勾选项目设置中的 不检验安全域名、TLS 版本以及 HTTPS 证书 选项。

平台 SDK 接入

除了纯游戏内容以外,其实微信小游戏环境还提供了非常强大的原生 SDK 接口,其中最重要的就是用户、社交、支付等,这些接口都是仅存在于微信小游戏环境中的,等同于其他平台的第三方 SDK 接口。这类 SDK 接口的移植工作在现阶段还是需要开发者自己处理。下面列举一些微信小游戏所提供的强大 SDK 能力:
1、用户接口:登陆,授权,用户信息等 
2、微信支付 
3、转发以及获得转发信息 
4、文件上传下载 
5、媒体:图片、录音、相机等 
6、其他:位置、设备信息、扫码、NFC、等等