● 为抖音小游戏平台添加 WASM 支持。 issue
● 统一 WASM 模块的构建流程。
● 为抖音小游戏与微信小游戏平台添加 WASM Brotli 压缩格式 ( .br) 支持。此功能默认关闭,可在构建面板中启用。issue
● 为抖音小游戏平台添加“预加载脚本”功能,加快进游戏的速度。此功能默认关闭,可在构建面板中启用。issue
● 支持按照构建任务名称匹配构建模板,例如 build-templates/wechatgame-001 内的模板,会在构建任务名为 wechatgame-001 的任务构建时作为其构建模板拷贝使用。项目可以根据实际需求为同一平台定制不同的构建模板,比如 debug 与 release 的不同模式模板。
● 支持在构建面板上直接配置不同于项目设置的物理后端、webgl 2.0 后端、原生代码打包模式。如果项目设置中未开启相关模块,则对应的选项不显示。其中抖音、微信小游戏平台还支持 Brolti 压缩选项,勾选后将会缩小大约 2/3 的体积,但由于需要运行时解压缩会稍微影响启动时间。可以根据项目的时机情况按需开启。(文档介绍:add engine config documention in build-options.md by yanOO1497 · Pull Request #2864 · cocos/cocos-docs · GitHub)
● Substance 贴图导入后可以右键多选贴图自动生成材质,目前已在 Substance 内支持了 Cocos 引擎的导出选项,有指定的命名规则。
可以根据项目情况自行在项目设置-自动材质设置 内修改自定创建材质的关键字,目前支持 houdini vat、zeno、SP材质节点等文件类别关键字。
● 项目设置支持插件脚本排序配置可以更直观的对有顺序需求的脚本进行排序,同时废弃了旧版本的插件脚本依赖配置,旧配置将会自动迁移到项目设置内(参考文档:[3.8.3] update plugin scripts documentation by yanOO1497 · Pull Request #2862 · cocos/cocos-docs · GitHub)
● 纹理压缩支持小游戏平台单独配置格式不做剔除
● 优化构建任务的进度显示,显示详细的子日志信息
● 优化引擎模块的分组显示,支持整组的全选操作
● 优化调整了构建编译、运行按钮锁定的规则,互不影响的平台如 web 平台可以同时运行
● 优化了插件脚本在属性检查器内的相关选项文案、UI 交互等
● 更新了设备管理器内的设备数据
● 完善优化了旧版本插件脚本默认值行为以及一些界面选项的操作,新增在小游戏平台的执行环境控制
● Bundle 文件夹添加新的图标标识
● 修复在 schedule 的回调函数里 unschedule scheduleOnce 导致 scheduleOnce 可能不被调用的问题。issue
● 修复 vec3.slerp() 的逻辑错误。issue
● 修复 web 平台上 WASM 和 ASMJS 的文件都会被下载的问题。issue
● 修复原生平台上粒子旋转效果不正确的问题 issue
● 修复新管线使用外部资源纹理进行上屏时报错的问题
● 修复开启 Box2D wasm/asmjs 实验性功能后,在不支持 wasm 的平台上使用 Box2D asmjs 导致初始化场景黑屏问题
● 修复editbox的隐藏节点之后、延迟加载显示editbox等输入坐标不对的问题;
● 修复label没有激活节点时,销毁时,纹理不会立即释放的问题
● 修复label的cache模式不支持字符表情的问题;
● 修复default_pannel设置太大,导致编辑器异常的问题;
● 修复bmfont的opacity不生效的问题;
● 修复spine 设置timeScale 播放速率不一样。issue
● 修复 spine.EventType 没导出的问题。 issue
● 2D 物理返回的角速度返回值从角度改成弧度
● 修复了 Ve3.rotateN() 的逻辑错误
● 修复自动图集文件夹内小图更新后重新构建图集内容纹理压缩图未及时更新
● 修复编辑器 ipc 通信的内存泄漏的问题
● 修复 Bundle 构建成功后,点击确定按钮报错
● 修复构建流程内对构建模板文件 MD5 添加的缺失与替换问题
● 修复 vivo 平台在 install 失败后没有正常抛出异常
● 修复抖音小游戏平台以 lite 模式点击运行后报错
● 修复 PolygonCollider2D 在编辑模式下调整边界框时卡顿的问题
1. 新增自定义管线 Subpass、MSAA 支持
2. 动画图恢复了对非骨骼动画(AnimationClip)的支持
3. 脚本系统开始支持解析符号链接,以用于支持 pnpm 等依赖符号链接的包管理器。(现在默认对符号链接进行解析,此举可能影响那些将 assets 目录链接至项目的做法)。
4. 添加了 iOS 对屏幕边缘手势的延迟触发以防止误触
5. 添加了原生平台对 http 请求的 patch 方法支持
6. 添加了 RichText 的默认颜色接口
7. 新增钢琴烤漆、车漆和玻璃材质
示例:https://github.com/cocos/cocos-example-materials 场景:assets\advanced-cases\coat\coat.scene
8. HDR 下 Scene 面板增加 PostSettings 选项,Tone Mapping Type 提供 DEFAULT 和 LINEAR 选项
9. 新增实验性质的 Box2D wasm
10. 新增角色控制器 Trigger 事件,支持 角色控制器组件 和 碰撞体 监听 onControllerTriggerEnter,onControllerTriggerStay,onControllerTriggerExit
11. 支持动态改变 MeshCollider 的 Mesh
12. 换用更稳定的 mesh simplify 工具
13. 新增 mesh cluster 的支持
14. 新增 mesh quantize 的支持
15. 新增 mesh encode/decode 和 inflate/deflate 的支持
a. 面板选项
b. 大场景加载/渲染的性能提升
1. 偏好设置添加 Java Home 路径设置,用于解决 Android 构建时设备安装多个 JDK 的问题
2. Android 构建面板添加 Resizeable Activity 和 Max Aspect Ratio 选项
3. 抖音小游戏支持配置开发者工具启动模式并快捷启动
4. 微信小游戏平台默认开启 CLEANUP_IMAGE_CACHE,其他平台默认跟随项目设置
5. 材质、模型、Mesh 及骨骼动画的预览窗口添加了网格、天空盒以及 Scene Gizmo,同时支持控制预览视角
6. 新增 3D 工具可见性开关,关闭后将隐藏变换工具以外的 3D Gizmo
7. 属性检查器支持拖动调节属性名宽度
8. 属性检查器支持显示部分组件图标
9. 优化 Light 和 Camera 组件的 visiblity 在属性检查器中的显示效果
10. 减少内置引擎的 boost 库的文件数量,缩减编辑器包体
11. 其他细节体验优化
1. 修复自定义管线特定条件下渲染错误问题
2. 修复动画图变体未对嵌套的状态机生效的问题
3. forceLOD 调用后,改变节点的 active,接口不能正常工作
4. 优化 android 端 editText 输入框的交互
5. 修复 editbox 旋转后, 在 web-mobile 上可能出现的错误显示效果
6. 修复 Mac 切换窗口和全屏时 editbox 的输入表现错误
7. 修复 Android 多点触摸崩溃问题
8. 修复音效播放过程锁屏,解锁屏后不能恢复播放
9. 修复 iOS Safari web audio 播放超过 5 分钟后会有杂音的问题
10. 修复 audioManager 存放的 player 可能被 destroy 的问题
11. 优化同一帧调用同一个音频对象的多个音频操作可能存在卡顿的问题
12. 淘宝小游戏 iOS 平台:修复多次调用音频 play 进度条会一直卡在 0 的问题
13. 小米平台:修复音频播放时,拖动进度条,进度条会从 0 的位置再跳转的问题
14. 修复小游戏批平台,播放的音频个数超过 10 个后,继续调用其他音频的播放接口可能导致内存泄漏问题
15. 修复 videoplayer 暂停&结束后通过 isPlaying 接口获取的状态错误
16. 修复切换 video 源时可能出现的异常表现
17. 修复 swig 绑定重载构造函数时绑定代码丢失命名空间的问题
18. 修复 swig 绑定多级(>= 2) 内部类导致的异常问题
19. 修复在 .i 中重命名内部类导致胶水代码编译失败的问题
20. 修复原生平台上 scene._instantiate 实现不对的问题
21. 修复非安卓平台,反复重启 `game.restart()` 导致的崩溃或者卡死问题
22. 修复编辑器中 scale 不为 1 时 widget 带来的场景错乱问题
23. 修复 Button 组件在启动时会使用 Sprite 组件的 spriteFrame 覆盖本身 normalSprite 的 bug,将按 button 组件序列化的数据来填充 spriteFrame 状态。
24. 修复 ScrollView 使用鼠标滚动后,scrolling 属性始终为 true 的 bug
25. 修复带 carmera 的场景,点击鼠标会出现偏移的 bug
26. 修复 OpenHarmony 收到 resize 之后,分辨率出现不正确的 bug
27. 修复 OpenHarmony 取消勾选 WebSocket 之后出现链接的问题
28. 修复自定义管线中 Fog AO 半透明等混用的渲染错误(需要开启 CC_USE_FLOAT_OUTPUT 宏)
29. 修复反射探针烘焙和移动更新的问题,并优化原生引擎调用性能
30. 修复切换雾效类型天空盒不受影响的问题
31. 修复创建的默认 SphereCollider 的 Center 不为 0 的问题
32. 角色控制器调用 move 方法时会马上将其物理世界位置同步到场景节点
33. 修复使用 Xcode 15 编译 iOS 项目导致的程序启动崩溃问题
1. 修复碎图和图集同时配置纹理压缩时导致的运行时报错
2. 修复自动图集在压缩纹理后仍包含原图的问题
3. 修复图集被多个 Bundle 引用并且 bundle 优先级一致时纹理压缩图片拷贝异常的问题
4. 修复 Bundle config 重定向配置存在重复数据的问题
5. 修复空 Bundle 不输出 config.json 的问题
6. 修复 Bundle 中的文本资源包含 uuid 时构建依赖信息错误的问题
7. 修复 Bundle 构建面板的输出目录无法选择的问题
8. 修复只构建 Bundle 后构建面板无法新建构建任务的问题
9. 修复构建任务名称修改后切换构建模式,任务名称可能出错的问题
10. 修复插件脚本里实现组件后,预览和构建时报错类重复注册的问题
11. 修复勾选初始场景分包后,脚本、资源可能输出位置错误的问题
12. 修复预制件的部分操作撤销后的数据异常
13. 修复点击事件引用了预制件子节点后无法正常保存的问题
14. 修复拖拽预制件节点覆盖原预制件文件时嵌套预制件的修改丢失问题
15. 修复编辑预制件时的其他若干问题
16. 修复编辑器预览无法调试 localStorage 的问题
17. 修复编辑器预览设置 FPS 无效的问题
18. 修复编辑地形时打开预制件再回到场景时地形数据异常的问题
19. 修复编辑地形时部分操作撤销重做后表现不符合预期的问题
20. 修复往预制件实例的 mounted 嵌套预制件上添加节点,没有显示 + 号的问题
21. 修复 Mac 上通过程序管理器(program)配置默认浏览器为 Safari 可能会出错的问题
22. 修复艺术字资源可能因为导入时序缺失数据的问题
23. 修复动画编辑器事件帧、关键帧,曲线编辑等若干问题
24. 修复粒子曲线面板编辑时的若干交互问题
25. 修复编辑 FBX 资源时事件帧图标不能拖动和部分情况下位置不正确的问题
26. 修复 Widget 组件 undo 不准确的问题
1. 将 UIMeshRenderer 组件标记为不推荐使用,用户可使用 RenderTexture 来实现类似功能,详见 Cocos Creator 3.8 手册 - UIMeshRenderer 组件参考
2. 用户自定义的 Effect 可能需要仿照 internal 资源中的 effects/legacy/standard.effect 添加平面阴影相关 pass,否则平面阴影无法动态合批,详见 #14958
1. iOS web-mobile EditBox 显示在界面顶部时,第一次获取到焦点时可能会被输入法移出屏幕外,若遇到此问题可参考该 PR 进行修复
Creator 3.x 依赖 3D 游戏呼声最高的需求应该就是后处理了,之前一直都推荐开发者使用 RenderTexture 来制作却没有提供内置能力,主要原因在于支撑后处理的自定义渲染管线一直没有完成。而经过 3.7 赛博朋克 Demo 对自定义渲染管线的验证,在 3.8 中我们终于可以将抗锯齿、超分辨率、环境光遮挡、炫光等后处理特效交付给开发者。这些后处理流程目前都集成在了 CustomPipeline 中,一方面作为 RenderGraph 的示例,另一方面也可以作为我们标准 Forward 管线的试验场。
1. 抗锯齿:提供了消耗非常低的 FXAA 和效果较好基于时序的 TAA
2. 超分辨率 FSR:有助于用较低的损耗提升渲染分辨率,达到用较低的损耗达到更高的画质,或者减轻项目的性能压力
3. Bloom:增强高光位置的泛光表现,提升画面质感
4. HBAO:高质量环境光遮蔽,可以大幅度提升场景的立体感和质感
5. 自定义 Color Grading:这是非常简单但立竿见影的一种后期处理方法,可以用来增强对比度、饱和度,调节颜色、白平衡等画面属性。支持任意 Nx1 的长条图 和 8x8 的方块图,系统自动适配
从 3.8 开始,我们推荐需要使用后处理的项目切换到 Custom 自定义管线,可以参考文档进行管线的开启。后处理流程的开启方法参考后处理管线文档,目前可以先参考管线测试项目来了解如何使用。
1. 皮肤材质:在内置 effect 中更新简单皮肤材质和高级皮肤材质,案例可以参考 Cocos Example Materials 中的 Character 场景
2. 眼球材质:在内置 effect 中更新高级眼球材质,案例可以参考 Cocos Example Materials 中的 Character 场景
3. 叶片材质:在内置 effect 中更新高级叶片材质
4. 支持 Zeno & Houdini 导出的预烘焙模拟动画:这项功能可以让开发者在游戏或内容中集成离线计算的高质量物理模拟动画,包括刚体、流体、布料等,使得游戏转场或一些固定场景的表现力大幅度提升,尤其是对车机等应用内 3D 模拟非常有帮助。
a. Zeno
b. Houdini
5. Reflection Probes 支持 Blend,之前的版本中,动态物体在不同 probe 区域之间的移动会引起跳变,在 3.8 中,不仅支持 Probe 之间的效果混合,也支持 Probe 和天空盒之间的混合,在不同烘焙区域以及室内到室外的场景中,都可以得到很自然的过度效果。
我们为 Marionette 动画系统引入了一个新的特性:姿态图。这个新功能将为程序化动画以及双骨骼 IK 动画提供支持。利用姿态图,开发者可以通过节点系统以便捷的方式定义各种程序化动画和动作姿态,从而构建出更为复杂、细腻的场景交互。这也将大大减少用户在创建角色动画时所需的动画数量。举例来说,你可以定义角色在不同平面的脚部 IK,让角色爬上不同高度的地形,或在走路时注视某一方向。此外,姿态图还可以作为动画状态机的补充,可在状态机中进行嵌套使用。详见:《Cocos Creator 3.8 手册 - 程序式动画》
在制作复杂的程序化生成动画时,你可能需要为动画添加一些变量曲线,以进行逻辑判断或作为变量使用。为了满足这些需求,我们在动画编辑器中新增了辅助曲线功能。你现在可以为任何一条骨骼动画添加额外的曲线,并且添加后,这些曲线可以在姿态图和状态机中进行读取和混合。这个新功能将提供更大的自由度,帮助你更好地控制和定制动画。
此外 Marionette 动画系统还有这些升级:
1. 新增角色控制器组件:对于角色扮演和动作类等游戏,可以极大降低角色的开发成本,内置能够和环境自然交互的角色控制能力。
2. 约束:新增可配置约束组件,可以用于定制各种复杂的物理部件连接方式,比如汽车的轮轴、各种关节等。
3. 约束:Hinge 约束新增转轴驱动和转动范围限制
4. 新增 sweep 碰撞检测
自定义管线能力在 3.8 正式开放给开发者,它在 3.8 中还支持了 Custom 管线及其后处理能力,具体定制管线的使用方法可以参考自定义管线的详细文档,也可以参考我们的使用范例。RenderGraph 在 3.8 中的能力升级具体如下:
支持单独构建指定 Bundle,便于用户单独更新资源,功能入口位于选中的 Bundle 文件夹设置中。
支持在 Bundle 文件夹设置中添加过滤选项,让用户可以更灵活地筛选 Bundle 内要参与实际构建的资源。
优化 Bundle 配置的平台设置方式,支持预设配置,便于用户精确管理不同平台的导出选项。
注意:项目升级到 3.8 后,Cocos Creator 会自动将 Bundle 配置迁移到项目设置内,请在升级后记得向项目源码库(如 Git)提交项目的 settings 文件夹及 bundle 文件夹对应的 meta 文件改动,以免配置冲突。
构建时支持只构建 Bundle。
构建时支持筛选参与构建的 Bundle,默认全部导出。
我们在 3.7 支持导入 LOD 模型的基础上,支持了在模型中显示 LOD 信息及新的 LOD 自动生成功能,以便用户更轻松简单地使用 LOD。
用户可以在 3.8 直接导入任何不包含 LOD 的模型,并模型导入选项中设置不同的 LOD 层级,Cocos Creator 会自动进行减面,并且在场景中创建模型实例时自动添加 LOD Group 组件。
3.8.0 开始,引擎部分模块开始使用 wasm 实现,目前包括 spine,渲染 webgpu 后端,物理引擎的 bullet 和 physx 后端。在使用时需要注意以下情况:
注意
除了微信平台,其他小游戏平台如果开启了引擎 asm.js 分包,需要勾选 spine 模块,我们将在 3.8.1 里处理这个问题,参见 修复 PR
Cocos 引擎团队和 OpenHarmony 团队紧密合作两年多以来,一起推动了 OpenHarmony 系统在游戏领域的支撑能力不断提升,在社区版本之后,v3.8 我们正式集成了 OpenHarmony 4.0 版本的支持。并且针对引擎 TS 脚本的性能优化,还开放了 AOT 优化选项,优化 OpenHarmony 运行时性能,参考 AOT 编译指导。
在今年 Google IO 大会上 Google Play Games on PC 和大屏体验是受到重点关注的安卓平台更新,Cocos 也被 Google 官方推荐为适配 Google Play Games on PC 平台的引擎和大屏体验的推荐游戏引擎。
Cocos 也已经有很多知名游戏登录了该平台,从 v3.8 开始,你只需要在构建 Android 时勾选 x86 架构,以及 InputSDK 选项,即可满足 Google Play Games on PC 的平台要求。该平台是 Google Play 尝试扩展桌面平台的重要机会,同不断出现的折叠屏、平板一样,标志着大屏幕适配对移动游戏来说越来越关键,也可以帮助开发者获取更多用户。
其他平台支持方面的更新包括:
CLEANUP_IMAGE_CACHE
宏偏好设置的程序管理器支持配置默认图片编辑器
@menu
修饰器支持使用菜单路径,示例:
`EDITOR_NOT_IN_PREVIEW`
宏,用于简化各类插件和调试代码对编辑器运行环境的判断,为 true
则表示代码在编辑器中执行且场景不在预览状态。示例:
详见 引擎完整提交列表
resetInEditor
` 在编辑器中没有被调用的问题
Cocos Creator 3.7.0 是我们在不断挑战和提升自我路径上的又一力作。为了应对爆发的元宇宙需求以及支持更流畅更真实的 3D 世界,我们在渲染效果、GI 全局光照、LOD、动画系统、物理系统、易用性以及性能方面进行了众多提升。由于 3.7 版本更新众多,包含了大量的体验优化和缺陷修复,在此只列出重要更新,其余更新可以参考我们 GitHub 上的更新列表。
GI 全局光照是提升 3D 渲染真实感的关键基础设施。在此之前, Lightmap 可以用来烘焙静态物体的间接光照,但是对场景中的动态物体则无能为力,如角色和场景中移动的物体,这样容易造成视觉效果不统一的问题。光照探针可以提前通过烘焙记录空间中各点的光照信息,然后在物体运动时根据记录在探针中的结果模拟间接光照,对场景中的动态物体也提供高质量的全局光照支持。同时,光照探针还具备良好的运行时的处理性能,预计算也相当快。更多介绍详见《光照探针》。
应用光照探针的角色:
使用光照探针实例化绘制的球体:
光照探针编辑:
为了进一步提升渲染效果以及提升 3D 项目的沉浸感,我们加入了反射探针支持。它可以在场景中带有反射性质的材质上,渲染出真实的对周边环境的反射,此功能对画面的真实感提升是非常巨大的。它通过空间内某一点对附近区域的环境进行烘焙,在把周围环境信息储存后,应用在范围内有反射材质的物体上以实现真实环境反射的一种手段。在 3.7中,我们加入了具有两种模式的反射探针:Cube 烘焙模式用来烘焙一定空间范围内的立体环境。Planar 平面实时反射模式主要用来模拟平面上的反射,如光滑地面、水面等。更多介绍详见《反射探针》。
LOD(Level of Details)是常用的一种大型场景优化手段,核心在于对远处或者不重要的物体,降低其显示细节,以达到提升渲染效率的目的。3.7 加入了模型 LOD 支持,可根据物体显示在屏幕上的尺寸比例,动态切换合适的模型精度,节省渲染资源。更多介绍详见《多层次细节》。
CSM 层级阴影最明显的一个效果问题就是在不同层级之间的阴影精度不同,导致在接缝处可能产生比较违和的割裂感,尤其是随着相机的移动,不同层级的拼接位置也在不断变化,导致很容易被发现的接缝移动现象。在 3.7 中,我们新增了 CSM 层过渡的支持,混合不同层级的渲染效果,使两个 CSM 阴影层级间过渡更加平滑。
基于 RenderGraph 的 自定义管线 中新增了 Bloom 后处理特效和 FXAA,将作为后处理定制的标准方案供大家参考。与旧的渲染管线难以扩展与配置不同,新的基于 RenderGraph 的自定义管线的可插拔结构使扩展管线的功能更加容易,同时对于 Forward/Deferred 渲染的输出结果进行后处理特效(如:Bloom 等)的新增也会更加便捷。
3.7 的场景编辑器可以运行在以 C++ 为基础的 Windows/Mac 原生 Cocos 引擎之上,而不是原先以 JS/WebGL 为基础 HTML5 引擎。这意味着编辑器有潜力充分发挥 Cocos 引擎在原生端的性能优势,为各类元宇宙场景、3D 开放世界做好准备。此功能目前处于实验性状态,需在偏好设置 - 实验室开启 Use native engine for scene editor 开启试用。开启后,编辑器支持打开一个与 Scene 并存的独立 Game 面板,用于多窗口项目预览以及调试。
3.7 升级了扩展管理器,采用了全新的 UI 并且支持一键安装和更新扩展插件,还支持记录和安装项目所依赖的扩展,让项目的分发更加方便。
为了实现更好的版本管理,提高扩展稳定性,新版扩展管理器也调整了一些管理机制:
插屏设置用于在游戏启动时对 Cocos 或您的品牌进行露出,同时加速首屏启动时间,给用户更好的体验。在 3.7 我们开始着手对此前维护力度不足的插屏设置功能进行翻新,在收集了不少用户反馈,结合 Cocos 自身的业务需要后,插屏设置功能得到了初步重构。目前做出的主要调整如下:
项目设置:
构建面板:
3.7 支持在 Mesh 的属性检查器中显示各个通道的 UV,方便用户快速确认导入模型的 UV 或者 Lightmap 的 UV 是否正确,是否在(0,1)的区间内,是否有重叠等信息。
支持动画图变体。动画图变体是一种新的动画资产类型,允许用户在一个动画图的基础上创建变体,使其有可能在不同的角色上重复使用同一个动画图:
动画状态机混合预览面板更新,支持用户更直观方便的在动画图中预览混合的结果
调整 CurveRange 的构造逻辑,延迟构造底层曲线数据,同时优化了内部装饰器,加快粒子系统初始化速度。在不同复杂度的粒子下均有可观的性能提升。
和 3.6.2 粒子加载速度对比(加载时间越小,加载速度越快,粒子使用的功能模块越多,提升越明显):
除了粒子加载速度以外,其他不少模块也有了不同程度的性能优化,其中包括以下几个比较显著的方面:
注:图示中每个平台下都会不断增加负载进行性能测试数据采集,不同平台之间负载并不一致,统一在帧率上进行差异展示,所以数值越高越好
在 3.6.3 中,我们新增了淘宝小程序创意互动平台的支持,同时还完成了一系列关键性的缺陷修复,建议所有 3.6 用户升级。
优化原生 Spine/DragonBones 性能 #12788。我们在 3.6.2 重点优化了原生上 Spine 的运行性能。在 iOS 较低端设备上最大达到了 40% 以上的性能提升。在 Android 平台也有较为可观的性能提升。
[实验性功能] 我们在 Web-Desktop 平台新增了基于 wasm 的面向未来的渲染后端——WebGPU(Chromium 105)。未来会基于 WebGPU 后端逐步接入如 ComputeShader 等功能特性,对 Web 平台的渲染能力提升具有重要作用。WebGPU 相关介绍可以参考 https://www.w3.org/TR/webgpu/
3.6.0 发布后,我们收到了不少开发者的反馈,非常感谢大家一如既往的支持。3.6.1 对这些问题集中进行了修复,提升了用户体验,也对一部分性能进行了优化,建议所有 3.x 用户升级。
除此之外,Cocos Creator 的官方 XR 内容开发插件 Cocos CreatorXR 也已适配 3.6.1。它在底层通过支持 OpenXR 标准协议来抹平不同 XR 设备之间的差异,可以一站式对创作内容进行开发并发布到不同的 XR 设备中而无需去适配不同设备的 I/O 项;中层封装了一系列不同功能的 XR 中间件来提供 XR 内容创作支持,并支持用户自定义扩展组件内容;上层基于 Cocos Creator 面板扩展出多种形式的 XR 功能菜单和组件样式,为用户提供更为便利的内容创作界面。开发者可通过 Dashboard 新建 3.6.1 项目,选择对应的模板/案例来自动安装 Cocos CreatorXR 插件,详见 Cocos CreatorXR 介绍。
下面是这次更新的主要内容:
在 Cocos 团队内部,我们一直将 3.6 作为 3.0 的合并版本之后最重要的里程碑版本来看待,一方面这个版本的迭代周期是迄今为止最长的一个版本,另一方面是因为这个版本在多个方面的大幅进化。下面就是 3.6 版本的更新说明,由于更新数量过多(engine:1110 PRs,editor:678 PRs),在此只列出相对重要的更新。
Surface Shader 使用统一渲染流程和结构,可以让用户以简洁的代码创建表面材质信息,指定用于组合的光照和着色模型。相比旧版(Legacy Shader)的优点是更易书写和维护,有更好的版本兼容性,也更不容易产生渲染错误。并且可以从统一流程中获取很多公共特性,如统一的全场景光照和 Debug View 调试功能等。
Creator 也更易扩展出多种常见的复杂材质提供给用户,未来还会支持 Shader Graph 自动生成 Effect 代码,可以极大提高 Shader 开发者的效率。
普通的阴影贴图有一个致命弱点:当投影面积较大时,对阴影贴图分辨率的需求会超出硬件承载极限。如果不提高分辨率会导致阴影锯齿严重、形状缺失、不清晰,但减小投影面积又会导致阴影可视距离非常短。在阴影可视距离和阴影效果上的平衡调整是一个非常令人头痛的问题。
CSM将视锥按远近顺序划分为多块,近处投影范围更小而远处投影范围更大,相当于一个自适应的阴影贴图,从而提高数倍贴图利用率。它可以在较大的阴影可视距离上具备精细的阴影效果,再也不用把精力花费在参数调校上了。
多种自定义的显示模式,帮助用户更快定位各种材质、光照、阴影显示问题,以及方便用户查看更清晰的特定场景信息,帮助用户做出优化决定。
由于精确光源的高光都是使用 GGX 的 BRDF 分布,对于环境光源而言也必须使用同样的 BRDF 做球面卷积才可以让两种光源的光照效果对应。此外不同粗糙度的反射光照是存储在对应的 Mip 中,相比于自动生成的 Mip 数据,卷积计算可以修复以下问题:
如图所示:
自动 Mipmaps
GGX 卷积
GGX | 平行光 | Mipmaps
通过 Surface Shader 带来的好处,我们可以充分扩展 PBR 光照模型。在 3.6 已经完整支持了在精确光源和环境光源下,各向同性和各向异性的材质与光照模型。可以对接 Substaince PBR 材质库,制作拉丝纹路的金属、头发、丝绸等等。
V3.6 启用了全新的编辑器 UI,本次改版围绕「更协调」的视觉系统、「更科学」的视觉反馈、「更沉浸」的交互感受,对 UI 和交互进行了一次全方位的梳理。我们希望通过交互来改善视觉感受,通过视觉来影响交互体验,并从这两个层面进一步提高用户体验。未来我们将继续基于 Cocos 的设计目标、设计系统、设计原则进行规范化设计,持续更新迭代,优化核心交互和工作流程。
开发效率是 Cocos Creator 非常重视的一项核心优势,在 v3.6 中这项优势得到了进一步提升。除了网页预览和模拟器预览,现在开发者还可以使用「编辑器预览」来运行游戏。编辑器预览将在场景管理器中直接执行游戏逻辑,并且可以实时调试游戏场景。一方面带来更无缝的预览体验,另一方面也补足了在调试方面的短板。
此功能目前处于实验性阶段,欢迎大家在使用过程中给我们更多反馈。未来我们也将持续关注研发效率,在脚本编译、项目调试、构建发布环节持续提升用户的幸福感。
动画编辑器新增了嵌入播放器功能,可以在任意动画中嵌入其他粒子和动画,并用类似视频剪辑软件轨道的方式进行编排,自由调整时长和播放位置。
在完成编辑之后,嵌入播放器的内容会伴随此条动画剪辑(AnimationClip)一起播放,在 Animation 组件和动画图系统中都能支持。此外,动画嵌入播放器支持添加到 FBX 导入的动画上,可以实现更灵活的特效控制,解决了导入动画难以二次编辑的问题。
目前在 3.6 中提供了粒子和动画两种播放器,可以在实验室设置中启用。
为了更好地服务开发者出海,v3.6 提供了内置的多语言工具 Localization Editor(L10n),目前支持文本翻译和资源替换。其定位是与 Creator 深度集成,通过高自动化提高翻译的效率,并且以无代码的方式降低使用门槛,达到任何人都可以开箱即用的目的。
包含的核心功能为:
Localization Editor 目前处于实验性阶段,未来将提供更丰富的游戏本地化能力,欢迎大家提供反馈。
表面吸附 Surface Snapping(按住 ctrl/cmd + shift)
顶点吸附 Vertex Snapping(按住 v)
支持框选功能,可以批量选中多个物体
从去年 3.3 版本发布之后,其中最重要的原生化团队就开始了针对 3.6 版本目标的开发工作。这么长的周期其实往往是一些底层根基性重构所必需的,而商业引擎服务于全行业的特殊性决定了它既要紧跟硬件的发展不断挑战最好的性能、最优秀的画面表现力,还要在生产端不断提升生产效率,保持对项目的兼容性和对不同硬件环境的伸缩性适配。这些挑战意味着引擎需要对底层框架进行持续的迭代和重构,有时候是破坏性的,比如从 2D 引擎进化为 3D 引擎,而大多数时候这种迭代是延续性的,比如我们在 3.6 的原生化进展。尽管花费了我们团队一年的时间,进行了多个阶段和多个模块的重构,原生层代码增加了两倍多,但我们仍然在大幅度优化性能的基础上做到了对老项目的兼容。这样的底层重构一方面带来了可见的性能和表现力提升,另一方面,我们往往是为了未来的进一步迭代做好准备,扫清障碍。从 3.6 这个版本的缩影大家可以看到引擎开发永恒的命题:持续不断得自我变革,以适应硬件的更新和用户需求的变化。
3.6 还有一个重要的具有里程碑意义的标志,那就是在 2D 渲染性能上和 2.x 达到了同样的水准,代表着 2.x 用户如果有 3D 需求或持续迭代需求可以放心升级到 3.x。在底层原生化的基础之上,我们进一步将 2D 渲染数据结构、2D 合批管理器和渲染流程都原生化了,让 2D 的合批和提交渲染的流程都在原生进行,以达到类似 2.x 的性能表现。当然,现阶段还有部分遗留的工作没有完全完成,比如 Spine 的合批支持,但这也代表着在原生化的基础之上,3.x 的 2D 渲染性能还将有更高的天花板等待我们去突破。
原生插件可以链接开发者现有的 C/C++ 代码库,绑定接口到JS层并在不同项目间重复使用。
通过利用 CMake 的能力,插件能灵活地集成源文件、静态库或动态库。C/C++ 接口可以直接使用传统的自动/手动绑定机制,也可以使用3.6 新增的 sebind 高阶接口导出到脚本层。 开发完成后,原生插件可以 zip 包的形式单独分发, 也可以打包到 编辑器插件 一并发布。
3.6 在材质导入上实现了对 Diffuse-Specular 材质模型(包括 Phong 和 SpecularGlossiness PBR)的支持,可将材质参数智能转换到标准 Metallic Roughness PBR 模型中。这样就可以在不更改光照模型的情况下获得接近原 DCC 软件中的材质表现。
Blender |未使用材质转换 |使用材质转换
使用 Phong 材质的 FBX 智能材质导入
之前的版本由于 uniform 的限制,在 CPU 计算的骨骼动画中,当骨骼数量超过一定值后,无法一次性通过 uniform 存储所有骨骼数据,所以我们在模型导入时有可能拆分模型和骨骼。所以经常收到反馈说自己的一个角色模型会占用多个 DrawCall,主要原因就是这里被自动拆分了。更重要的是由于拆分不能在运行时进行,只能在离线进行,所以我们的拆分标准使用的是最低端的运行时设备和驱动(iPhone 6 WebGL),对骨骼数量限制很大。
所以,Cocos Creator 3.6 对这一问题做了策略优化:
使用纹理传递骨骼动画数据的方式需要在顶点着色器中访问纹理,这一特性最低支持为 OpenGL ES 3.0, WebGL 2.0。但依靠 GL 扩展,在仅支持 OpenGL ES 2.0 和 WebGL 1.0 设备上,几乎已达到 100% 的覆盖率,所以无需担心兼容问题。
目前保留此选项应该只是为了保持旧项目的兼容性,在适当的时候会考虑移除。
V3.5.1 在不影响原有功能稳定性的前提下加入了两项影响深远的实验性功能。一是智能导入 FBX 中的 DCC 默认材质,还原美术在各类 DCC 工具中使用的材质和外观;二是内置了一系列 Surface Shader 材质资源,这将成为未来支撑材质定制的基石。除此之外,我们还完成了一系列关键性的问题修复,体验优化和大量的文档优化,建议所有 3.x 用户升级。
FBX 智能材质导入是模型导入器中辅助转换材质的一个功能,它可以将各种 DCC 工具导出到模型中的部分标准材质直接映射到 Cocos Creator 的内置材质中,尽量还原美术在 DCC 工具中看到的材质效果。我们可以对比一下 Maya 中的 Standard Surface 材质导入 Cocos Creator 后的效果:
Maya 工具内效果
开启 FBX 智能材质导入后 Cocos Creator 内效果
此功能已支持主流 DCC 工具:3ds Max、Blender、Maya、C4D 中的部分标准材质。
具体使用可以参考使用文档。同时我们也将在 3.6 中持续优化模型和材质导入体验,敬请期待。
从 3.0 版本以来,不少开发者都经历过升级过程中材质无法正常使用,需要迁移的问题,为此我们也准备过不少材质系统专属的升级文档,然而手动升级过程的体验确实不尽如人意。此问题的根本原因是引擎的光照模型和表面材质的计算一直在调整,这会影响所有相关的材质 effect 代码,也会影响到用户复用这些材质时的兼容性。
为了提升材质系统的兼容性,我们新增了一系列 Surface Shader 资源,抽象了引擎内的光照模型和表面材质计算,未来开发者可以使用这些抽象好的头文件和内置函数极大简化自己书写的 effect 资源。同时由于多了一些封装,跨版本间的兼容性也会更有保障。
具体 Surface Shader 的使用请参考使用文档。
从 3.5 开始我们设计了新版 API 文档页面,受到了开发者比较普遍的好评和一些反馈。在 3.5.1 我们继续做了大量的内容检查,通过近 40 个 PR 进一步补全了之前遗留的一些 API 文档,修复了部分文档错误。并且之后文档也会得到持续性的优化,希望给开发者带来越来越好的使用体验。
在 v3.4 版本中我们带来了支持复杂角色动画的动画系统 Marionette,支持动画状态机和多维混合等功能。在 v3.5 中,我们继续向其中添加了不可或缺的关键能力:层级和遮罩。这可以让开发者轻松做出更复杂的动作系统,比如下面展示的上下半身分离。
对于 2D 用户和 2D 项目开发,我们做了一些编辑器的体验增强,这也是为了帮助有升级需求的 2.x 开发者更好得升级上来,获得与 2.x 类似的体验。从 3.0 发布以来,我们一直在通过各项性能和体验优化积极推动开发者的升级,并且还会持续优化下去。在 v3.5 中,你将可以看到下面的一些体验优化:
Cocos 和 Google 在 Android 移动平台上一直以来都有非常紧密的合作,Android 也是我们最重要的平台之一。我们很高兴宣布在 v3.5 引擎中加入了Frame Pacing Library。它是 Android Game Development Kit (AGDK) 的一部分,主要用于帮助游戏平滑和稳定帧率,对 OpenGL 或 Vulkan 后端都适用。你可以在 Android 构建面板中启用 Swappy 来开启此功能。
我们在此版本中引入了一个新的简易几何渲染的 API,这些 API 是为了绕过组件层,直接在屏幕上渲染一些用于调试的标记几何体。目前已支持线条、盒子、球体、多边形等几何体,渲染模式支持线框模式、填充模式,一部分几何体也可以动态开启光照和深度测试。所有几何体的坐标系在世界空间,并且支持 transform。
更详细的几何体信息请参考下面的表格
在过去几个版本中,我们一直在修正和提升渲染表现,同时,我们也在关注美术侧的 DCC 内容生产工作流。在 v3.5 中会有一部分材质体验的优化交付给大家:
同时敬请期待我们后续版本中更显著的美术体验优化。
地形编辑器在新版本中提供了新的抹平和高度画刷,可以让开发者们更方便得编辑平面地貌。
从 v3.5 开始,我们将所有平台层相关的底层适配代码集合到了 PAL 模块中,包括系统信息、窗口适配、音频、输入系统等。系统层的事件派发行为也被统一了。这是一个底层重构,用户层 API 不会收到影响,但这次重构会让 Cocos Creator 未来有能力更轻松得适配新的平台和环境。
此版本中比较显著的性能优化包含以下几点:
对于之前的 API 文档体验社区用户多有吐槽,也让引擎的新人上手门槛和学习曲线抖升。为了解决这个至关重要的问题,我们重新设计了 API 文档的组织方式和界面设计,大家可以访问我们 新的 API 文档链接 来体验。当然,这只是一个开始,我们也希望大家继续反馈建议帮助我们持续改善文档的体验。
为了更好服务开源社区,我们将原生引擎仓库合并到了 engine 仓库中,并且迁移到 cocos/cocos-engine,从现在开始,我们将通过公开 issues 和 公开 projects 向开源社区同步我们的后续计划。如果你正在使用自定义引擎,那么这个修改对你的影响会比较大,从 v3.5 开始,自定义引擎只需要克隆 engine 仓库即可。所有以前在 TS 引擎仓库的修改可以直接 rebase 到 v3.5 分支,但是以前在 engine-native 仓库的修改需要手动应用到 engine 仓库的 native 目录下。详细信息可以参考自定义引擎文档。
在 v3.4.1 中我们完善了 2D 渲染组件的数据提交和合批策略,由于这些是触及基础的改动,所以引发了一些 Tiledmap,Graphics 的问题。并且 Spine 和 Dragonbones 在 Android 浏览器上性能没有得到提升,这些问题都在 v3.4.2 版本中得到了集中的解决。
另外,在社区的积极测试和反馈下,我们也修复了一些编辑器相关的体验问题,比如脚本重新编译时导致的内存泄露、大项目构建 iOS 平台时资源拷贝的卡顿问题。需要再次感谢社区开发者们。
请所有使用 v3.4 的用户升级到 v3.4.2,将得到更优秀的稳定性和开发体验。
在 v3.4.1 中,我们重点修复了 v3.4.0 发布后用户反馈的问题,提升了稳定性。同时为了帮助开发者 v2.x 开发者升级到 v3,我们调整了 2D 渲染组件的合批策略,大幅度提升了 2D 渲染的整体性能表现,相比 v3.3 提升幅度可达到 20% - 70% 左右。性能测试结果我们也对比了 v2.x 版本,参考下面的对比图,绝大部分测试的表现都已经和 2.x 逼近或持平,小部分超过。
图例讲解:所有测试都是在中低端机完成,每张图标的四个区间依次为 Android Web、iOS Web、Android WeChat、iOS WeChat。另外原生平台上的整体性能提升在 3.6 的原生化版本中也会得到大幅度的优化,目前原生化的独立分支已经合并到 3.6.0 的开发分支中了。
另外,为了未来允许在微信小游戏上开启 WebGL 2.0,我们也修改了微信平台的构建选项,增加了实验性质选项:支持跟随项目模块配置启用 WebGL 2.0,默认情况下关闭缩减包体。如果选择跟随项目模块配置,并且项目模块中勾选了 WebGL 2.0 渲染后端,那么未来等微信环境支持 WebGL 2.0 即可成功启用。
3.4.1 经过了个把月的论坛公测,期间有很多热心开发者(如 @ankoGo 和 @ankye)和我们保持了高频度的线上交流,这些宝贵的反馈建议帮助我们提高了版本的成熟度,非常感谢大家!
v3.4 是自 2021 年初 3.0 发布以来快速迭代后的一个年度收官版本,要的就是一个字:稳!这个版本研发和测试周期都比之前版本更长,也在社区进行了长达一个月的公开测试,在此也要感谢所有参与测试的开发者们!
在 v3.4 中不仅增加了像 Marionette 动画系统这样的重要功能,而且在产品体验、稳定性、性能优化、基础架构层面都做了大量的工作。除此之外,我们还集中修复了一批社区反馈比较多的问题,解决了一些以前遗留的疑难杂症。相信引擎团队倾注心血奉献给大家的 v3.4 版本会成为一个里程碑版本,更好得帮助开发者开发出优秀的游戏作品!
动画系统是 3.4 中最重要的新功能,我们取名为 Marionette,意思是提线木偶,不仅形象得描述了它的作用,而且使用提线木偶的木偶剧还是源自于中国的传统艺术形式,从唐代就出现,千年来流传至今仍然是闽南地区重要的戏曲形式。借助 Marionette,我们也希望开发者能够完美控制游戏角色,增强游戏通过角色叙事的能力。
在 3.4 版本中,Marionette 已经支持动画系统的基础功能,包含状态机、子状态机、状态机组件、触发器变量、Blend Tree 等。当然,更完善的动画系统能力还在迭代中,比如动画层级和遮罩、人形骨骼和 IK 等能力已经在继续开发之中。为了帮助大家学习 Marionette 动画系统,我们也准备了详细的文档、[Demo]和视频教程。
在编辑器体验方面,我们做了大量的体验细节优化和疑难杂症的处理。功能和体验优化包括:
v3.0 以来,Creator 一直在不断积累和打磨渲染能力,v3.4 中为了增强引擎的氛围感和画面效果,也带来了一系列重要的升级。尤其是光照模型的改进将使得引擎在光照表现层面更加精细。
手动设置环境光 vs 自动生成漫反射卷积图
关闭 HDR vs 开启 HDR
开启 Denoise vs 关闭 Denoise
在渲染管线方面,FrameGraph 是从 v3.1 开始引入的基础设施,经过几个版本的迭代,在 v3.4 我们正式将 Forward 和 Deferred 管线都对接了 FrameGraph,下面是一个简化的延迟管线 FrameGraph。
目前引擎的延迟管线总共包含 2 个计算 pass,7 个渲染 pass,虽然不算复杂,但已经能凸显 FrameGraph 的作用了。一方面简化了管线层的代码组织,降低了维护成本;另一方面也降低了开发者定制管线时的心智成本。基于 FrameGraph,华为 HMS CG Kit 团队在 v3.4 中继续在延迟管线中贡献了 Clustered Light Culling 用于优化动态光源计算性能,可在移动端支持同屏数百个动态光源(麒麟 990 芯片在 Sponza 场景运行 1000 盏动态光源可达到 40 fps)
另外,渲染管线中的 Subpass 也是基于 FrameGraph 来实现的,FrameGraph 的第二大优势就是延迟模式渲染(不同于延迟渲染管线),引擎可以先分析渲染流程,进行优化之后再执行完整渲染流程。目前移动端的 GPU 都是和 CPU 共享系统内存的,功耗的一大热点就是对于显存的读写。而 Subpass 优化就是充分利用 GPU 的 Tiled 缓存来降低显存读写功耗,当两个相邻渲染 Subpass 的写入资源和读取资源是同一份帧内资源,且不会被其他 pass 引用时,这个资源就只会通过 Tiled 缓存来读写,不会读写内存,可以明显降低功耗。这种对资源和渲染流程的自动推导正是 FrameGraph 带来的优势。
正如前文介绍,稳定性是 v3.4 版本的首要目标,所以我们也修复了一些困扰多时疑难杂症,将引擎的稳定性推上了一个新的高度。下面列举一些比较重要的修复
除了重要问题的修复以外,引擎的整体性能也得到了一定的提升,比如 2D 渲染和合批效率、物理性能、iOS Web 的 3D 场景性能、Android 部分场景。下面是 2D 渲染的部分测试结果:
由于调整了 web 平台屏幕适配的相关逻辑,我们改动了 Web 相关的 index.html 模板,这里包括预览模板、构建 web 平台模板。
我们已经在引擎内部做了相关的兼容处理 。
这个处理会确保 index.html 内部有一个固定的 div 结构
<div id="GameDiv">
<div id="Cocos3dGameContainer">
<canvas id="GameCanvas"></canvas>
</div>
</div>
如果缺失了 GameDiv / Cocos3dGameContainer,运行时会自动补齐
注意:这个 div 结构是引擎内部管理的私有结构,我们希望保持这个结构完整且不被定制。如果在这个结构内加入了其他 web 标签,可能会导致一些不确定的兼容问题。
新增的 IBL 采样降噪算法目前对 iOS Web 环境兼容有一些问题,由于发现较晚就没有在版本中合并了,会在后续的 3.4.1 中完成对 iOS Web 的支持
目前延迟管线仍然在高速迭代过程中,功能和平台兼容性还存在一些问题,暂不建议在项目中实战使用。目前已知的一些问题包括部分粒子混合模式无法渲染,暂不支持 builtin-toon 材质,部分低端平台和设备有兼容性问题,不支持聚光灯阴影,2D & 3D 相机混排问题等。
该版本主要功能是让引擎构建出来的原生应用可以支持 iOS 10+。为了支持 iOS 10+,引擎代码去除了对 C++17 的依赖。
引擎的有些功能依赖 C++17,有些功能对 Android API 有要求。为了方便开发者使用,编辑器的功能配置界面对于这些依赖进行了提示。比如,Android 使用延迟管线时,要求 Android API 21+,如果配置选择使用延迟管线,编辑器会提示需要的 Android API 版本:
当然了,我们还提供了完整的文档说明各个功能模块对于 Android API 和 C++ 版本的要求。详细信息可以参考该文档说明。
从 v3.1 开始,UITransform 组件的 priority 属性已弃用,若需要调整节点树的顺序请使用 setSiblingIndex 方法。在 v3.1 之前通过代码创建并依赖 priority 属性的节点可能会出现节点树表现和之前不一致的问题,请手动调整。
RenderTexture 在不同平台上会出现正反不一致的情况,为了解决这个问题,Creator 为 effect 新增了 SAMPLE_FROM_RT 宏,在使用 RenderTexture 时,需要将 SAMPLE_FROM_RT 宏设置为 true,各后端便会统一适配至正确的效果。
在 v3.1 中材质 Shader API 与 v3.0 有一定的差异,请参考 v3.0 材质升级指南 和 v3.1 材质升级指南 进行手动升级。
Cocos Creator 3.x 版本已经正式发布,2.4 版本将做为 LTS(长期支持)版本,提供后续两年的持续更新!在 2021 年,2.4 将继续更新版本,提供缺陷修复和新的小游戏平台支持,保障大家的项目成功上线;在 2022 年我们还将为开发者持续提供 2.4 的关键问题修复,保障已上线的游戏平稳运营!因此,
Cocos Creator 对项目的升级操作是不可逆的,请在升级前提交或备份旧版项目。绝大多数项目通常都能自动升级,但因为项目难免存在特殊性,开发者应该根据项目自身需求,提前对新版本引擎进行试用和评估。此外,出于稳定性考虑,建议即将上线或已上线的项目谨慎升级。如果开发者们在升级中遇到困难,欢迎向我们反馈,我们会尽力协助。
本次更新修复了一些已知问题,Cocos Creator 将持续优化性能,为开发者带来更好的使用体验!
以下是详细更新内容。
AnimationClip.createWithSpriteFrames
动态创建动画失败的问题inverseTransformPoint
函数错误backgroundImage
属性在 SpriteFrame 的修改时没有被同步的问题EventKeyboard.isPressed
属性的弃用
在 3.3 版本中,我们继续重点优化了微信小游戏平台的加载性能和运行性能。所有内部项目升级后微信云测启动性能分都可以达到 80 分以上。
同时,我们进一步提升了原生引擎的绑定层级,在渲染管线之上的渲染场景部分也完成了原生化,光源、模型等渲染对象的收集过程使用原生实现,进一步提升了原生平台的性能。
还有一个附带的好处,由于绑定层级的向上迁移,一些底层的数据共享机制被解除了,比如 Pass,SubModel 等。这使得 JS 引擎上层的实现尤其是 UI 和 2D 渲染合批相关的数据更加简化,部分高频操作的数据结构从 TypedArray 还原为直接量属性,使得 Web 和小游戏平台的性能也得到了可见的提升。
目前动画编辑器已在动画编辑器内置曲线编辑,与时间轴匹配,并支持任意关键帧之间的时间曲线编辑。
同时,在 3.3 中,我们也完成了动画数据的升级:引入了新的基础曲线类,重构了 AnimationClip,统一了动画和粒子系统使用的曲线数据。这些工作都是为了后续的完善动画系统而准备的,在后续版本我们将支持动画状态机编辑,Blend Tree 动画融合等高级功能。
除此之外,动画编辑器还完成了以下工作:
在 v3.3 中,我们加入了 windows x64 的构建选项,未来将逐步废除 win32 平台的构建。
在构建面板上,我们也做了诸多优化:
在之前的版本中,阴影的配置一直是一个比较让开发者困惑的功能,我们已经有完整的规划,正在逐步完善中,v3.3 会首先简化阴影的配置,优化软阴影算法,修复阴影的部分效果问题。配置上的调整包含:
v3.1
v3.3
继 v3.1 支持 PhysX 物理后端以来,多套物理引擎的选择和使用也成为了我们重点关注的使用体验,在 v3.3 中我们不仅加强了物理功能,还尽可能统一了不同物理后端的物理表现。
Cocos Creator 3.x 版本已经正式发布,2.4 版本将做为 LTS(长期支持)版本,提供后续两年的持续更新!在 2021 年,2.4 将继续更新版本,提供缺陷修复和新的小游戏平台支持,保障大家的项目成功上线;在 2022 年我们还将为开发者持续提供 2.4 的关键问题修复,保障已上线的游戏平稳运营!因此,
Cocos Creator 对项目的升级操作是不可逆的,请在升级前提交或备份旧版项目。绝大多数项目通常都能自动升级,但因为项目难免存在特殊性,开发者应该根据项目自身需求,提前对新版本引擎进行试用和评估。此外,出于稳定性考虑,建议即将上线或已上线的项目谨慎升级。如果开发者们在升级中遇到困难,欢迎向我们反馈,我们会尽力协助。
Cocos Creator v3.2.1 是我们将 v3.1.2 合并到 v3.2.1 而来,继续在大版本分支上给大家带来更稳定的体验,v3.2 用户和 v3.1.x 用户都可以无痛升级。
Cocos Creator 3.2 正式支持 HarmonyOS,成为全球首家支持 HarmonyOS 的游戏引擎。与此同时,Creator 与字节跳动平台进行了深度合作,以实验性功能支持在字节小游戏中使用平台提供的 PhysX 物理能力!欢迎所有开发者使用与体验!以下是详细更新内容。
在 3.2 版本,Creator 将支持一键将游戏打包为 HarmonyOS 应用,在配置 HarmonyOS SDK 与 NDK 路径后,可在构建面板选择 HarmonyOS 一键打包,详细操作请参考文档 发布 HarmonyOS 应用 。
字节跳动平台一直致力于为开发者提供最强大的性能和基础能力,抖音将在 16.3 之后版本为小游戏提供 PhysX 原生物理接口,而 Creator 与字节跳动平台进行了深度合作,在 3.2 中以实验性功能支持在字节小游戏中使用平台提供的 PhysX 物理能力,优化物理运算性能,对比 Bullet 有近 100% 的性能提升。
可以在构建面板选择是否开启多线程:
Cocos Creator 3.x 版本已经正式发布,2.4 版本将做为 LTS(长期支持)版本,提供后续两年的持续更新!在 2021 年,2.4 将继续更新版本,提供缺陷修复和新的小游戏平台支持,保障大家的项目成功上线;在 2022 年我们还将为开发者持续提供 2.4 的关键问题修复,保障已上线的游戏平稳运营!因此,
Cocos Creator 对项目的升级操作是不可逆的,请在升级前提交或备份旧版项目。绝大多数项目通常都能自动升级,但因为项目难免存在特殊性,开发者应该根据项目自身需求,提前对新版本引擎进行试用和评估。此外,出于稳定性考虑,建议即将上线或已上线的项目谨慎升级。如果开发者们在升级中遇到困难,欢迎向我们反馈,我们会尽力协助。
v3.1.2 是在 v3.1.1 上优化体验和性能的版本,这个版本的更新内容是不包含在 v3.2 中的,之后会将 v3.1.2 的更新合并到 v3.2.1 和 v3.3.0。
从 3.1.0 之后引擎组其实一直在并行推进三个版本线,v3.2.0, v3.1.x, v3.3.0,其中 v3.2 由于有配合鸿蒙 2.0 发布的需求,所以发布日早就定下了,为了稳定性其实主要就是在 v3.1.1 基础之上增加了鸿蒙平台支持。而在这之后,我们也在持续收到开发者关于 3.1 的问题反馈,为了更切实解决开发者遇到的痛点问题,并且降低开发者的升级门槛,我们决定继续在 v3.1.2 上优化体验和性能,交付给开发者。目前 Cocos Creator v3.x 作为一个新生的 3D 引擎,距离开发者的期待还有不小的距离,我们希望通过这种持续交付的实际行动来给开发者更强的信心。同时感谢所有 v3.x 先行者的支持,是你们的反馈让引擎日趋完善!
以上就是 v3.1.2 的重要更新,优化了大量开发者反馈的问题,有些问题由于反馈众多,就不单独列出论坛链接了,如果有修复各位遇到的问题,欢迎大家去关联到本帖并标记已解决。
另外,v3.3.0 版本已进入迭代后期,这个版本有一些非常重要的更新可以提前透露给大家:
除此之外还有各种 Demo 也在制作当中,比如已经上架 Store 的跑酷 Demo 56
API 文档页面也在进行重新设计,我们都非常重视,会尽力一步步完善 Cocos Creator v3.x 的 2D & 3D 开发体验!
Cocos Creator 3.1.1 主要修复了 v3.1 出现的稳定性问题,并优化了编辑器工作流。欢迎所有开发者使用与体验!升级前请做好相关文件备份哦!以下是详细更新内容。
Cocos Creator 3.x 版本已经正式发布,2.4 版本将做为 LTS(长期支持)版本,提供后续两年的持续更新!在 2021 年,v2.4 将继续更新版本,提供缺陷修复和新的小游戏平台支持,保障大家的项目成功上线;在 2022 年我们还将为开发者持续提供 v2.4 的关键问题修复,保障已上线的游戏平稳运营!因此,
Cocos Creator 对项目的升级操作是不可逆的,请在升级前提交或备份旧版本项目。绝大多数项目通常都能自动升级,但因为项目难免存在特殊性,开发者应该根据项目自身需求,提前对新版本引擎进行试用和评估。此外,出于稳定性考虑,建议即将上线或已上线的项目谨慎升级。如果开发者们在升级中遇到困难,欢迎向我们反馈,我们会尽力协助。
3.0 版本的推出标志着 Creator 迈向了一个全新的征程,而 Creator 3.1 就是征途上的第一块基石,此次版本更新带来了很多非常棒的新特性,包含华为海思团队贡献的延迟渲染管线,PhysX 物理后端的支持等等;同时,相对 3.0 版本,各方面的性能也得到了优化,例如帧动画性能,加载性能,包体等等。我们将会在 3.x 的基础上继续深耕,用真诚的态度和敬业的精神,踏踏实实完善产品体验,普惠所有开发者。欢迎所有开发者使用与体验!升级前请做好相关文件备份哦!
Cocos Creator 3.x 版本已经正式发布,2.4 版本将做为 LTS(长期支持)版本,提供后续两年的持续更新!在 2021 年,2.4 将继续更新版本,提供缺陷修复和新的小游戏平台支持,保障大家的项目成功上线;在 2022 年我们还将为开发者持续提供 2.4 的关键问题修复,保障已上线的游戏平稳运营!因此,
Cocos Creator 对项目的升级操作是不可逆的,请在升级前提交或备份旧版项目。绝大多数项目通常都能自动升级,但因为项目难免存在特殊性,开发者应该根据项目自身需求,提前对新版本引擎进行试用和评估。此外,出于稳定性考虑,建议即将上线或已上线的项目谨慎升级。如果开发者们在升级中遇到困难,欢迎向我们反馈,我们会尽力协助。
Creator 3.0 版本作为引擎组的新基线版本,统一了 2D 与 3D 的开发工作流,兼顾了轻量与重度游戏的开发体验,融合了几乎所有 Creator 2.x 与 Creator 3D 1.x 版本的功能。一经推出就受到了大家的踊跃尝试与使用,并收到了许多积极反馈。而此版本主要面向 3.0 版本以来的问题修复与使用体验优化。我们将会在 3.x 的基础上继续深耕,用真诚的态度和敬业的精神,踏踏实实完善产品体验,普惠所有开发者。欢迎所有开发者使用与体验!升级前请做好相关文件备份哦!
可选值为 Global 或 Enclosed。当为 Global 时,直接在目标环境中执行该脚本。当为 Enclosed 时,将整个脚本包裹在 IIFE 函数中执行,这意味着脚本顶部以 var 声明的变量不会提升为全局变量。
缓动系统更新时机从 lateUpdate 阶段之后更改为 update 阶段之后,可能需要调整处理时机 #8305
为了适配 M1,重新编译了第三方库,要求 Xcode 版本为 11.5+
在导入含有负帧动画的 FBX 时可能造成编辑器不工作,请在相应 DCC 工具中确定没有负帧动画出现,之后版本将修复此问题
原生平台 Spine 预乘渲染不正确,之后版本将修复此问题
Cocos Creator 3.x 版本已经正式发布, 2.4 版本将做为 LTS(长期支持)版本,提供后续两年的持续更新!在 2021 年,2.4 将继续更新版本,提供缺陷修复和新的小游戏平台支持,保障大家的项目成功上线;在 2022 年我们还将为开发者持续提供 2.4 的关键问题修复,保障已上线的游戏平稳运营!因此,
Cocos Creator 对项目的升级操作是不可逆的,请在升级前提交或备份旧版项目。绝大多数项目通常都能自动升级,但因为项目难免存在特殊性,开发者应该根据项目自身需求,提前对新版本引擎进行试用和评估。此外,出于稳定性考虑,建议即将上线或已上线的项目谨慎升级。详细的升级说明请参考升级指南,如果开发者们在升级中遇到困难,欢迎向我们反馈,我们会尽力协助。
在 3.0 预览版发布后,引擎组收到了大量开发者的热情反馈,引擎组工程师们动力倍增,经过了又两个月的迭代后,终于将这灌注了汗水与热血的产品正式推出。Creator 3.0 统一了 2D 与 3D 的开发工作流,兼顾了轻量与重度游戏的开发体验,融合了几乎所有 Creator 2.x 与 Creator 3D 1.x 版本的功能,而这一切都是建立在 Creator 3.0 更加健壮的面向未来的底层架构上,这对引擎组来说是个具有重要意义的里程碑。我们会在 3.0 的基础上继续深耕,用真诚的态度和敬业的精神,踏踏实实完善产品体验,普惠所有开发者。3.0 正式版在预览版的基础上,进一步优化了性能,完善了品质,并推出了更多功能,例如接入了 Spine,DragonBones 的原生运行时,支持使用 NPM 库,重构了 Prefab 系统与 UI 系统等诸多内容。欢迎所有开发者使用与体验!
3.0 使用了面向未来的全新引擎架构,将为引擎带来高性能、面向数据及负载均衡的渲染器,并且无缝支持 Vulkan & Metal 多后端渲染,未来还会支持移动端 VR/AR 及部分主机平台。下面对 3.0 的部分特性进行简要介绍。
一体化的编辑器,带来轻量易用的创作体验。Cocos Creator 3.0 在 Cocos Creator 2.x 沿用多年的编辑器框架上进行了重构、拓展和升级。
Cocos Creator 3.0 可一键接入 Cocos 官方推出的各类优质服务,提升开发效率,推出更多优质内容,Cocos 也将持续推出更多更优质的服务。
Creator 3.0 重新实现了 Prefab 系统,
在构建之后,Creator 3.0 将会缓存大部分构建内容,包括资源,压缩纹理,自动图集,引擎代码等,在之后构建中,如果没有变化,将直接使用缓存内容,加快构建速度,提升效率。
构建发布将以构建任务的形式进行,保存每次构建的配置、状态、log 等,方便切换构建任务以及查看历史配置。
提取了各个小游戏平台的生成阶段,允许在构建之后修改文件内容重新生成 rpk/cpk,同时可以支持在编译前后添加构建钩子来定制构建流程。
和 2.4 一样,3.0 也使用 Asset Bundle 作为资源模块化工具。开发者可以将贴图、脚本、场景等资源构建为多个 Asset Bundle 中,进而在游戏运行过程中按需加载,从而减少首次下载和加载游戏所需的时间。Asset Bundle 可以按需求随意放置,比如可以放在远程服务器、本地,或者小游戏平台的分包中,也可以跨项目复用,用于加载子项目中的 Asset Bundle。
支持在构建时设置 Splash Screen,用于在游戏启动之前显示一段过场动画,优化首屏启动速度。
GameView 是内嵌于编辑器的游戏运行面板,开发者无需打开浏览器预览,即可在编辑器中直接运行游戏。除了更无缝的开发体验,还能在游戏运行过程中通过场景编辑器或其它面板实时调试、修改元素状态,让游戏开发更高效!
Cocos Creator 3.0 拥有更加强大的插件系统,编辑器几乎所有功能模块都是以插件形式存在。你可以在扩展菜单中快速创建自己的插件,从而实现自己想要的效果。另外,Cocos Creator 3.0 还提供了扩展管理器,可以轻松管理所有扩展插件的运行和卸载。
插件可以使用 IPC 消息与其他插件或编辑器进行通信,快速方便地使用编辑器内部已提供的能力。Cocos Creator 3.0 还提供了消息管理器,可以清晰地看到目前编辑器内已提供的功能,降低插件开发门槛。
动画编辑器是我们一直在持续优化的重要模块,除了标准的位移、旋转、缩放动画和序列帧动画以外,这套动画系统还支持驱动任意组件属性和用户自定义属性,再加上可任意编辑的时间曲线和创新的移动轨迹编辑功能,能够让内容生产人员不写一行代码就制作出细腻的各种动态效果,任意驱动游戏逻辑。
除常规操作外,3.0 的动画编辑器更提供了以下快捷操作,帮助游戏开发者实现想要的内容:
便捷的地形系统,快速绘制地形纹理。地形编辑主要包括三大功能:管理(Manage)、雕刻(Sculpt)、描绘(Paint)。同时支持 Normal Map,PBR 材质和自定义材质。
烘焙是通过预先计算光源对物体的影响来生成光照贴图并应用到场景中的过程,可以在不损失运行效率的前提下大大提升静态场景的画面表现。
提供了修改引擎宏配置的快捷方式,配置的宏将会在预览、构建时生效,同时也会跟随自定义引擎的配置更新当前宏配置的默认值。
支持添加压缩纹理预设配置,用于快速配置纹理的压缩方式。给图片设置预设后,还可以直接修改预设来批量更新对应的纹理,大大方便了项目的全局管理。
为了方便 2.x 用户升级,我们在 3.0 中提供了项目迁移插件,可将 2.4.3 以上版本的项目迁移到 3.0.0 版本中,此工具将支持旧项目资源完美导入,以及代码的辅助导入。代码辅助导入会把 js 转换成 ts,添加组件类型声明、属性声明及函数声明,组件在场景中的引用都会得到保留,并且函数内部的代码会以注释的形式导入进来,可以减轻开发者的升级难度。不过 2.x 的 API 和 3.0 仍然有不小的差异,我们能尽可能通过 deprecation 和 removal 机制来做运行时警告,开发者的代码仍需做不小的调整才能够完美升级到 3.0。
Cocos Creator 2.4 在 2D 渲染方面很强大,Cocos Creator 3.0 则允许开发者制作出更加精美的 3D 游戏。我们在 3.0 中将两者的优势进行了融合,全面支持 2D、3D 的各种功能特性,无论 2D 还是 3D,3.0 都将满足你的需求。
渲染系统作为游戏引擎的核心模块,起着至关重要的作用,直接决定了游戏所能输出给玩家的内容。一个优秀的渲染系统还必须兼顾各类平台,抹平平台间的差异。Cocos Creator 3.0 的渲染系统,从架构到设计都是以面向未来、高性能、跨平台为目标,极大地提升了渲染能力和健壮性。
在 3D 世界中,光与影一直都是极其重要的组成部分,它们能够丰富环境表现,质量好的阴影可以达到以假乱真的效果,并且使得整个世界更具立体感。
粒子系统是游戏引擎特效表现的基础,它可以用于模拟的火、烟、水、云、雪、落叶等自然现象,也可用于模拟发光轨迹、速度线等抽象视觉效果。良好的粒子效果可以使游戏画面更加惊艳。
材质作为资源,决定了其所附加的物体的渲染效果,几乎游戏中所有渲染出来的效果都与材质密不可分。材质系统作为基础模块,为上层建筑提供了坚实的基础。
Cocos Creator 3.0 内置了通用的动画系统用以展示基于关键帧的动画。在编辑器中我们可以很方便地生产关键帧动画剪辑。我们能也支持导入外部 FBX、glTF 资源中已经包含的骨骼动画,资源管理器中可以对这些动画进行二次剪辑,在动画编辑器中可以预览动画效果,添加动画事件触发器,通过动画系统 API 也可以自如得控制动画播放。
除此之外,我们还支持以下特性:
Cocos Creator 3.0 的项目开发全面转向了 TypeScript,项目中也不再支持 JavaScript。我们在 3.0 中进一步完善了对 TypeScript 的支持:
@integer
, @float
, @string
, @boolean
, @type
等Cocos Creator 3.0 延续了 2.x 的 UI 设计,并进一步优化升级,包含以下内容:
Cocos Creator 3.0 目前内建了轻量的碰撞检测系统 Builtin 和具有物理模拟的物理引擎 cannon.js,以及由功能强大的 bullet 编译成为 asm.js/WASM 版本的 ammo.js,并为用户提供了高效的组件化工作流程和便捷的使用方法。引擎组将持续对物理系统进行完善与优化,提供更多功能特性以及提升性能,并将对接更多物理系统后端,我们很快将在后续版本中推出 PhysX 的后端支持(包括原生平台,小游戏平台,Web 平台),将大大增强物理系统的原生性能和能力,未来更将会支持包括布娃娃系统,布料模拟,CCD 检测等等功能特性。
view.setFrameSize
接口报错的问题enable auto gray effect
选项Creator 3D v1.2 | Creator v3.0 |
---|---|
PhysicMaterial | PhysicsMaterial |
Creator 3D v1.2 | Creator v3.0 |
---|---|
line | Line |
plane | Plane |
ray | Ray |
triangle | Triangle |
sphere | Sphere |
aabb | AABB |
obb | OBB |
capsule | Capsule |
frustum | Frustum |
MorphModel | models.MorphModel |
ray_aabb | rayAABB |
ray_plane | rayPlane |
ray_triangle | rayTriangle |
ray_sphere | raySphere |
ray_obb | rayOBB |
ray_capsule | rayCapsule |
ray_subMesh | raySubMesh |
ray_mesh | rayMesh |
ray_model | rayModel |
line_plane | linePlane |
line_triangle | lineTriangle |
line_aabb | lineAABB |
line_obb | lineOBB |
line_sphere | lineSphere |
aabb_aabb | aabbWithAABB |
aabb_obb | aabbWithOBB |
aabb_plane | aabbPlane |
aabb_frustum | aabbFrustum |
aabbFrustum_accurate | aabbFrustumAccurate |
obb_point | obbPoint |
obb_plane | obbPlane |
obb_frustum | obbFrustum |
obbFrustum_accurate | obbFrustumAccurate |
obb_obb | obbWithOBB |
obb_capsule | obbCapsule |
sphere_plane | spherePlane |
sphere_frustum | sphereFrustum |
sphereFrustum_accurate | sphereFrustumAccurate |
sphere_sphere | sphereWithSphere |
sphere_aabb | sphereAABB |
sphere_obb | sphereOBB |
sphere_capsule | sphereCapsule |
capsule_capsule | capsuleWithCapsule |
Creator 3D v1.2 | Creator v3.0 |
---|---|
BAIDU_GAME | BAIDU_MINI_GAME |
VIVO_GAME | VIVO_MINI_GAME |
OPPO_GAME | OPPO_MINI_GAME |
HUAWEI_GAME | HUAWEI_QUICK_GAME |
XIAOMI_GAME | XIAOMI_QUICK_GAME |
JKW_GAME | COCOSPLAY |
ALIPAY_GAME | ALIPAY_MINI_GAME |
BYTEDANCE_GAME | BYTEDANCE_MINI_GAME |
Creator 3D v1.2 | Creator v3.0 |
---|---|
UIRenderable | Renderable2D |
UIDrawBatch | DrawBatch2D |
为了保障现有的 Cocos Creator 2.4 项目平稳过渡,我们会将 2.4 做为 LTS(长期支持)版本,提供后续两年的持续更新!在 2021 年,2.4 将继续更新版本,提供缺陷修复和新的小游戏平台支持,以及 Apple Silicon (M1) 芯片的支持,保障大家的项目成功上线;在 2022 年我们还将为开发者持续提供 2.4 的关键问题修复,保障已上线的游戏平稳运营!因此,
而原有的 Cocos Creator 3D 做为 Creator 的分支版本,已经面向中国进行了长达一年的迭代,成功上线了星空大决战、最强魔斗士等重度项目!3.0 发布后,Creator 3D 也将包含在 3.0 中,现有的 1.2 项目都可直接升级,因此 Cocos Creator 3D 后续不会再发布独立版本,还望周知。
虽然我们不建议开发中的项目,特别是即将上线的项目强升 3.0,但是我们仍将在 3.0 正式版推出 2.x 资源导入工具。如果现有项目有特殊原因需要升级,并且遇到了技术上或者工作量上的困难,也可以联系 zhengxiong.zhao@cocos.com 获取我们的人工协助!
2.4.11 对近期发现的一些 2.x 相关问题集中进行了修复,重点提升了编辑器及引擎的稳定性,解决了一些原生移动平台相关问题,建议所有 2.x 用户升级。此版本未对项目和插件的兼容性造成破坏,大家可参照 2.4.7 的升级说明进行更新。将来我们也仅会在 2.x 版本中提供关键缺陷修复,不再建议新用户或者新项目使用 2.x,请统一升级到 3.x。
此开关用于控制是否自动监听资源文件的变更,位于偏好设置的常规选项中,默认开启。
关闭时,编辑器不会主动监听资源文件的变化。如需刷新资源,可在指定文件夹右键点击进行刷新。
更新 openssl 版本到 1.1.1q #300
2.4.10 对近期发现的一些 2.x 相关问题集中进行了修复,重点提升了编辑器及引擎的稳定性,解决了一些原生移动平台相关问题,建议所有 2.x 用户升级。此版本未对项目和插件的兼容性造成破坏,大家可参照 2.4.7 的升级说明进行更新。
根据 3.0 版本正式发布时的计划,我们仍会在 2022 年继续提供关键缺陷修复。这些修复将只围绕稳定性和可用性进行优化,因此不再建议新用户或者新项目选择 2.4,请统一使用 3.x 版本开发。
Director.EVENT_BEFORE_UPDATE
、Director.EVENT_AFTER_UPDATE
、Director.EVENT_AFTER_DRAW
事件,额外添加 deltaTime 参数 [#11359](感谢大城小胖)2.4.9 对近期发现的一些 2.x 相关问题集中进行了修复,重点提升了编辑器及引擎的稳定性,解决了一些影响原生移动平台上架的阻碍,建议所有 2.x 用户升级。此版本未对项目和插件的兼容性造成破坏,大家可参照 2.4.7 的升级说明进行更新。根据 3.0 版本正式发布时的计划,我们仍会在 2022 年继续提供关键缺陷修复。这些修复将只围绕稳定性和可用性进行优化,因此不再建议新用户或者新项目选择 2.4,请统一使用 3.x 版本开发。
2.4.8 对近期发现的一些 2.x 相关问题集中进行了修复,重点提升了编辑器的使用体验及引擎的稳定性,建议所有 2.x 用户升级。此版本未对项目和插件的兼容性造成破坏,大家可参照 2.4.7 的升级说明进行更新。
根据 3.0 版本正式发布时的计划,我们仍会在 2022 年继续提供关键缺陷修复。这些修复将只围绕稳定性和可用性进行优化,因此不再建议新用户或者新项目选择 2.4,请统一使用 3.x 版本开发。
工欲善其事,必先利其器。经过长时间的准备和测试,2.4.7 版本终于发布了,感谢所有给予我们宝贵反馈的小伙伴们!在此次更新中,我们对近期发现的一些 2.x 相关问题集中进行了修复,重点提升了编辑器的稳定性、兼容性,建议所有 2.x 用户升级。
在 2.4.5 中,我们为了兼容 Mac M1 尽快升级了编辑器底层的 Electron,导致了开发者的部分插件出现异常,很抱歉给大家造成了不好的体验。针对有关问题,我们在近期进行了大量的专项测试,将兼容性适配代码集中汇总到了 2.4.7,最终为开发者抹平了 Electron 版本的差异,并且确保不会引入新的相关问题。
在之后的版本中,不论是 2.x 还是 3.x,我们都将秉持兼容第一的原则,并且持续验证 Cocos Store 中的插件兼容性。尽可能在基础设施变化时不影响项目、插件的运行,减少适配成本,提升升级体验。
根据今年 2 月 7 日 3.0 版本正式发布时的计划,2.4 做为 LTS 版本将在今年继续提供缺陷修复。同时明年全年,我们还将持续关注 2.4 的关键问题和重大的平台适配问题,不定期更新版本,支撑线上项目的安全运营,请大家放心。
再次集中解答一下关于 3.x 的升级问题:
Cocos Creator 对项目的升级操作是不可逆的,请在升级前提交或备份旧版项目。绝大多数项目通常都能自动升级,但因为项目难免存在特殊性,开发者应该根据项目自身需求,提前对新版本引擎进行试用和评估。此外,出于稳定性考虑,建议即将上线或已上线的项目谨慎升级。以下是升级说明,如果开发者们在升级中遇到困难,欢迎向我们反馈,我们会尽力协助。
从 2.3.0 开始,定制安卓原生工程时,需注意 Android 与 Android Instant 使用了同一个构建模板
此外,在 Cocos Creator 编译 Android 时会默认执行 assembleRelease/Debug,编译 Android Instant 时会执行 instant:assembleRelease/Debug。
如自定义了音频前后台切换时的暂停逻辑,升级到 2.3.0 后请移除目前 Creator 游戏在所有平台上前后台互相切换时,都会在内部自动暂停和恢复音频。 如果开发者之前有对这一块进行过定制,监听并执行了 cc.audioEngine.pause()/resume() 之类的音频操作,可能会和引擎默认行为冲突。如果有遇到相关的音频问题,只需移除相应的定制代码即可。
从 2.3.0 开始,Canvas 组件不再负责将 Canvas 节点尺寸设为屏幕大小,此行为将结合 Widget 组件实现。为保证兼容性,2.0 项目升级后,Canvas 所在节点会自动添加 Widget 组件。(从 1.x 项目升级无此问题)
从 2.2.0 开始,我们强化了内存管理机制,现在要求用户通过代码动态创建且独立于场景节点树的 cc.Node 必须通过 destroy() 释放,否则引擎无法知道何时回收这类节点的内存,会导致内存泄露。
// 假设 testNode 是场景中的某个节点,若之前被手动移出场景了,如
testNode.parent = null;
// 或者
testNode.removeFromParent(true);
// 或者
parentNode.removeChild(testNode);
// 若往后 testNode 还会再次用到,则无需手动 destroy 该节点
// 否则应该手动调用
testNode.destroy();
从 2.2.0 开始,我们不再建议你使用节点的 Skew 功能。Skew 通常用作在 2D 引擎中模拟 3D 效果,随着 Cocos Creator 对 3D 节点的深入支持,Skew 效果已经完全可以由 3D 节点来实现。为了统一使用体验,进一步优化引擎底层实现,我们在 3.0 中废弃了 Skew 属性。
打开 1.x 项目的话,场景等所有资源将会自动升级,代码中的废弃接口从 2.3.3 开始将会在保持兼容的基础上同步输出报错。升级方式可参考《1.10 资源升级指南》和《2.0 升级文档》进行调整。
本次更新修复了一些已知问题,Cocos Creator 将持续优化性能,为开发者带来更好的使用体验!以下是详细更新内容。
Cocos Creator 3.0 版本已经正式发布, 2.4 版本将做为 LTS(长期支持)版本,提供后续两年的持续更新!在 2021 年,2.4 将继续更新版本,提供缺陷修复和新的小游戏平台支持,保障大家的项目成功上线;在 2022 年我们还将为开发者持续提供 2.4 的关键问题修复,保障已上线的游戏平稳运营!因此,
Cocos Creator 对项目的升级操作是不可逆的,请在升级前提交或备份旧版项目。绝大多数项目通常都能自动升级,但因为项目难免存在特殊性,开发者应该根据项目自身需求,提前对新版本引擎进行试用和评估。此外,出于稳定性考虑,建议即将上线或已上线的项目谨慎升级。以下是升级说明,如果开发者们在升级中遇到困难,欢迎向我们反馈,我们会尽力协助。
从 2.3.0 开始,定制安卓原生工程时,需注意 Android 与 Android Instant 使用了同一个构建模板
此外,在 Cocos Creator 编译 Android 时会默认执行 assembleRelease/Debug,编译 Android Instant 时会执行 instant:assembleRelease/Debug。
如自定义了音频前后台切换时的暂停逻辑,升级到 2.3.0 后请移除目前 Creator 游戏在所有平台上前后台互相切换时,都会在内部自动暂停和恢复音频。 如果开发者之前有对这一块进行过定制,监听并执行了 cc.audioEngine.pause()/resume() 之类的音频操作,可能会和引擎默认行为冲突。如果有遇到相关的音频问题,只需移除相应的定制代码即可。
从 2.3.0 开始,Canvas 组件不再负责将 Canvas 节点尺寸设为屏幕大小,此行为将结合 Widget 组件实现。为保证兼容性,2.0 项目升级后,Canvas 所在节点会自动添加 Widget 组件。(从 1.x 项目升级无此问题)
从 2.2.0 开始,我们强化了内存管理机制,现在要求用户通过代码动态创建且独立于场景节点树的 cc.Node 必须通过 destroy() 释放,否则引擎无法知道何时回收这类节点的内存,会导致内存泄露。
// 假设 testNode 是场景中的某个节点,若之前被手动移出场景了,如testNode.parent = null;
// 或者
testNode.removeFromParent(true);
// 或者parentNode.removeChild(testNode);
// 若往后 testNode 还会再次用到,则无需手动 destroy 该节点
// 否则应该手动调用
testNode.destroy();
从 2.2.0 开始,我们不再建议你使用节点的 Skew 功能。Skew 通常用作在 2D 引擎中模拟 3D 效果,随着 Cocos Creator 对 3D 节点的深入支持,Skew 效果已经完全可以由 3D 节点来实现。所以为了统一使用体验,进一步优化引擎底层实现,我们废弃了 Skew 属性。不过我们依旧会保留一段时间内的向下兼容,开发者可在旧项目中延续原有做法。后续我们将进一步完善兼容方式和升级案例,择机正式移除 Skew 功能。
打开 1.x 项目的话,场景等所有资源将会自动升级,代码中的废弃接口从 2.3.3 开始将会在保持兼容的基础上同步输出报错。升级方式可参考《1.10 资源升级指南》和《2.0 升级文档》进行调整。
Cocos Creator 3.0 版本已经正式发布, 2.4 版本将做为 LTS(长期支持)版本,提供后续两年的持续更新!在 2021 年,2.4 将继续更新版本,提供缺陷修复和新的小游戏平台支持,保障大家的项目成功上线;在 2022 年我们还将为开发者持续提供 2.4 的关键问题修复,保障已上线的游戏平稳运营!因此,
Cocos Creator 对项目的升级操作是不可逆的,请在升级前提交或备份旧版项目。绝大多数项目通常都能自动升级,但因为项目难免存在特殊性,开发者应该根据项目自身需求,提前对新版本引擎进行试用和评估。此外,出于稳定性考虑,建议即将上线或已上线的项目谨慎升级。以下是升级说明,如果开发者们在升级中遇到困难,欢迎向我们反馈,我们会尽力协助。
从 2.3.0 开始,定制安卓原生工程时,需注意 Android 与 Android Instant 使用了同一个构建模板
此外,在 Cocos Creator 编译 Android 时会默认执行 assembleRelease/Debug,编译 Android Instant 时会执行 instant:assembleRelease/Debug。
如自定义了音频前后台切换时的暂停逻辑,升级到 2.3.0 后请移除目前 Creator 游戏在所有平台上前后台互相切换时,都会在内部自动暂停和恢复音频。 如果开发者之前有对这一块进行过定制,监听并执行了 cc.audioEngine.pause()/resume() 之类的音频操作,可能会和引擎默认行为冲突。如果有遇到相关的音频问题,只需移除相应的定制代码即可。
从 2.3.0 开始,Canvas 组件不再负责将 Canvas 节点尺寸设为屏幕大小,此行为将结合 Widget 组件实现。为保证兼容性,2.0 项目升级后,Canvas 所在节点会自动添加 Widget 组件。(从 1.x 项目升级无此问题)
从 2.2.0 开始,我们强化了内存管理机制,现在要求用户通过代码动态创建且独立于场景节点树的 cc.Node 必须通过 destroy() 释放,否则引擎无法知道何时回收这类节点的内存,会导致内存泄露。
// 假设 testNode 是场景中的某个节点,若之前被手动移出场景了,如
testNode.parent = null;
// 或者
testNode.removeFromParent(true);
// 或者
parentNode.removeChild(testNode);
// 若往后 testNode 还会再次用到,则无需手动 destroy 该节点
// 否则应该手动调用
testNode.destroy();
从 2.2.0 开始,我们不再建议你使用节点的 Skew 功能。Skew 通常用作在 2D 引擎中模拟 3D 效果,随着 Cocos Creator 对 3D 节点的深入支持,Skew 效果已经完全可以由 3D 节点来实现。所以为了统一使用体验,进一步优化引擎底层实现,我们废弃了 Skew 属性。不过我们依旧会保留一段时间内的向下兼容,开发者可在旧项目中延续原有做法。后续我们将进一步完善兼容方式和升级案例,择机正式移除 Skew 功能。
打开 1.x 项目的话,场景等所有资源将会自动升级,代码中的废弃接口从 2.3.3 开始将会在保持兼容的基础上同步输出报错。升级方式可参考《1.10 资源升级指南》和《2.0 升级文档》进行调整。
Cocos Creator 2.4.4 正式版来了,在 3.0 preview 版本发布后,引擎组正在全力攻坚 3.0 版本,希望能够统一 2D 游戏与 3D 游戏开发流程,提供更多更强大的功能特性。除此之外,引擎组将持续对 2.x 版本进行维护与优化,这次推出的 2.4.4 版本,支持了字节跳动小游戏子包功能,优化了运行时与开发过程,修复了 2.4 以来的相关问题,欢迎 2.x 用户进行升级与体验!
字节跳动小游戏正式支持子包功能,这将为开发者提供更多的发挥空间,Creator 也在第一时间开通对子包功能的支持。
Cocos Creator 对项目的升级操作是不可逆的,请在升级前提交或备份旧版项目。绝大多数项目通常都能自动升级,但因为项目难免存在特殊性,开发者应该根据项目自身需求,提前对新版本引擎进行试用和评估。此外,出于稳定性考虑,建议即将上线或已上线的项目谨慎升级。以下是升级说明,如果开发者们在升级中遇到困难,欢迎向我们反馈,我们会尽力协助。
从 2.3.0 开始,定制安卓原生工程时,需注意 Android 与 Android Instant 使用了同一个构建模板
此外,在 Cocos Creator 编译 Android 时会默认执行 assembleRelease/Debug,编译 Android Instant 时会执行 instant:assembleRelease/Debug。
如自定义了音频前后台切换时的暂停逻辑,升级到 2.3.0 后请移除
目前 Creator 游戏在所有平台上前后台互相切换时,都会在内部自动暂停和恢复音频。 如果开发者之前有对这一块进行过定制,监听并执行了 cc.audioEngine.pause()/resume() 之类的音频操作,可能会和引擎默认行为冲突。如果有遇到相关的音频问题,只需移除相应的定制代码即可。
从 2.3.0 开始,Canvas 组件不再负责将 Canvas 节点尺寸设为屏幕大小,此行为将结合 Widget 组件实现。为保证兼容性,2.0 项目升级后,Canvas 所在节点会自动添加 Widget 组件。(从 1.x 项目升级无此问题)
从 2.2.0 开始,我们强化了内存管理机制,现在要求用户通过代码动态创建且独立于场景节点树的 cc.Node 必须通过 destroy() 释放,否则引擎无法知道何时回收这类节点的内存,会导致内存泄露。
// 假设 testNode 是场景中的某个节点,若之前被手动移出场景了,如testNode.parent = null;
// 或者
testNode.removeFromParent(true);
// 或者
parentNode.removeChild(testNode);
// 若往后 testNode 还会再次用到,则无需手动 destroy 该节点
// 否则应该手动调用testNode.destroy();
从 2.2.0 开始,我们不再建议你使用节点的 Skew 功能。Skew 通常用作在 2D 引擎中模拟 3D 效果,随着 Cocos Creator 对 3D 节点的深入支持,Skew 效果已经完全可以由 3D 节点来实现。所以为了统一使用体验,进一步优化引擎底层实现,我们废弃了 Skew 属性。不过我们依旧会保留一段时间内的向下兼容,开发者可在旧项目中延续原有做法。后续我们将进一步完善兼容方式和升级案例,择机正式移除 Skew 功能。
打开 1.x 项目的话,场景等所有资源将会自动升级,代码中的废弃接口从 2.3.3 开始将会在保持兼容的基础上同步输出报错。升级方式可参考《1.10 资源升级指南》和《2.0 升级文档》进行调整。
Cocos Creator 2.4.3 正式版终于来啦!本次更新带来了很棒的新特性以及性能提升,例如支持 Prefab 的嵌套使用和Android x86_64 的支持等,另外,修复了 2.4 版本以来的问题,提升了编辑器稳定性,希望大家使用起来能够更加得心应手,事半功倍。建议所有开发者升级哦!升级之前请做好相关备份工作!
支持在 Prefab 中嵌套使用其他 Prefab,从而减少重复资源数量,并且更加利于维护与更新。
Android 平台可选择 x86_64 进行构建,构建之后可在更多设备与模拟器上运行。
Cocos Creator 对项目的升级操作是不可逆的,请在升级前提交或备份旧版项目。绝大多数项目通常都能自动升级,但因为项目难免存在特殊性,开发者应该根据项目自身需求,提前对新版本引擎进行试用和评估。此外,出于稳定性考虑,建议即将上线或已上线的项目谨慎升级。以下是升级说明,如果开发者们在升级中遇到困难,欢迎向我们反馈,我们会尽力协助。
从 2.3.0 开始,定制安卓原生工程时,需注意 Android 与 Android Instant 使用了同一个构建模板
此外,在 Cocos Creator 编译 Android 时会默认执行 assembleRelease/Debug,编译 Android Instant 时会执行instant:assembleRelease/Debug。
如自定义了音频前后台切换时的暂停逻辑,升级到 2.3.0 后请移除
目前 Creator 游戏在所有平台上前后台互相切换时,都会在内部自动暂停和恢复音频。 如果开发者之前有对这一块进行过定制,监听并执行了 cc.audioEngine.pause()/resume() 之类的音频操作,可能会和引擎默认行为冲突。如果有遇到相关的音频问题,只需移除相应的定制代码即可。
从 2.3.0 开始,Canvas 组件不再负责将 Canvas 节点尺寸设为屏幕大小,此行为将结合 Widget 组件实现。为保证兼容性,2.0 项目升级后,Canvas 所在节点会自动添加 Widget 组件。(从 1.x 项目升级无此问题)
从 2.2.0 开始,我们强化了内存管理机制,现在要求用户通过代码动态创建且独立于场景节点树的 cc.Node 必须通过destroy() 释放,否则引擎无法知道何时回收这类节点的内存,会导致内存泄露。
// 假设 testNode 是场景中的某个节点,若之前被手动移出场景了,如
testNode.parent = null;
// 或者
testNode.removeFromParent(true);
// 或者
parentNode.removeChild(testNode);
// 若往后 testNode 还会再次用到,则无需手动 destroy 该节点
// 否则应该手动调用
testNode.destroy();
从 2.2.0 开始,我们不再建议你使用节点的 Skew 功能。
Skew 通常用作在 2D 引擎中模拟 3D 效果,随着 Cocos Creator 对 3D 节点的深入支持,Skew 效果已经完全可以由3D 节点来实现。所以为了统一使用体验,进一步优化引擎底层实现,我们废弃了 Skew 属性。不过我们依旧会保留一段时间内的向下兼容,开发者可在旧项目中延续原有做法。后续我们将进一步完善兼容方式和升级案例,择机正式移除 Skew 功能。
打开 1.x 项目的话,场景等所有资源将会自动升级,代码中的废弃接口从 2.3.3 开始将会在保持兼容的基础上同步输出报错。升级方式可参考《1.10 资源升级指南》和《2.0 升级文档》进行调整。
继上周发布了 v2.4.1 之后,Cocos Creator 又为大家带来了呼声已久的 字节小游戏 平台支持!新的平台总是意味着新的机遇与挑战,将为开发者带来更多的用户及潜力,我们也期待字节小游戏上能爆发出更多优秀的产品!我们建议需要发布字节小游戏的开发者将引擎升级到最新版本,以获得最佳的使用体验。
字节小游戏基于字节跳动全产品矩阵开发,包含 今日头条、抖音 及 今日头条极速版,是不需用户进行下载,点开即玩的全新游戏类型,与图文、视频等场景有着天然的搭配性。字节跳动全产品矩阵以内容分发为核心,通过内容带动小游戏分发,由内容为小游戏带量以及裂变。目前已有十分丰富的应用场景,在自然搜索、feed 流、个人主页、小视频、视频评论区等地方均有流量入口,详细说明可参考《了解小游戏:流量入口概述》。在收入方面,字节小游戏目前已支持广告及内购两种变现方式。
采用 Creator 开发的游戏,只需构建时选择 字节跳动小游戏 发布平台,就可以自动完成适配,获得 Cocos Creator 强大便捷的跨平台能力,享受到最熟悉的开发体验。详细内容请参考 发布到字节小游戏。
为了更好地服务字节开发者,我们还在论坛开辟了 字节小游戏专区,请所有开发者统一到此专区或者 Cocos 小秘书中进行技术咨询和反馈。这样我们才可以汇总、整理常见问题,提升服务体验。此外,Cocos 也会跟字节跳动继续合作,争取为开发者输送更丰富的字节小游戏平台能力。
v2.4.2 和 v2.4.1 在产品功能上完全一致,因此我们也直接为现有 v2.4.1 用户们通过热更新的方式解锁了字节小游戏的发布入口。v2.4.1 用户只需要在网络连通的情况下启动 Cocos Dashboard 1.0.8,再打开编辑器即可。如未成功,请确保 Cocos Dashboard 使用的是最新的 1.0.8,并且完整退出再重开,而不仅是缩小到了托盘中。
此外,好消息再次广而告之一下:v2.4.1 已经支持了华为 AppGallery Connect 平台,并且可以一键接入华为 HMS Core,当前包含账号、支付、广告和游戏等服务,近期还将陆续支持推送、分析和定位等 SDK。
接下去,Cocos Creator 将与华为进行全方位的合作,特别是在技术层面上,与 CG Kit 底层算法集成,挖掘 Vulkan 极限渲染能力,释放更大的图形渲染性能,提升渲染效率。在产品层面,也将陆续接入华为 HMS Core、AppGallery Connect 更多优质服务,助力开发者开发出更多高品质的游戏。
v2.4.3 目前正在论坛公测,此版本除了包含最近支持的华为 AppGallery Connect、连尚小游戏、字节小游戏平台外,还有一系列重磅升级。如支持 Prefab 嵌套、减小 JSON 包体、优化场景加载表现、支持 Android x86 64 位架构等。欢迎访问 公测交流帖 体验反馈。我们感谢所有的用户反馈,企业服务、Cocos 小秘书服务、论坛讨论及 Beta 交流帖。这些反馈成为了我们梳理开发优先级、制订路线图时的重要依据。
Cocos Creator 对项目的升级操作是不可逆的,请在升级前提交或备份旧版项目。绝大多数项目通常都能自动升级,但因为项目难免存在特殊性,开发者应该根据项目自身需求,提前对新版本引擎进行试用和评估。此外,出于稳定性考虑,建议即将上线或已上线的项目谨慎升级。以下是升级说明,如果开发者们在升级中遇到困难,欢迎向我们反馈,我们会尽力协助。
从 2.3.0 开始,定制安卓原生工程时,需注意 Android 与 Android Instant 使用了同一个构建模板
此外,在 Cocos Creator 编译 Android 时会默认执行 assembleRelease/Debug,编译 Android Instant 时会执行 instant:assembleRelease/Debug。
如自定义了音频前后台切换时的暂停逻辑,升级到 2.3.0 后请移除目前 Creator 游戏在所有平台上前后台互相切换时,都会在内部自动暂停和恢复音频。 如果开发者之前有对这一块进行过定制,监听并执行了 cc.audioEngine.pause()/resume() 之类的音频操作,可能会和引擎默认行为冲突。如果有遇到相关的音频问题,只需移除相应的定制代码即可。
从 2.3.0 开始,Canvas 组件不再负责将 Canvas 节点尺寸设为屏幕大小,此行为将结合 Widget 组件实现。为保证兼容性,2.0 项目升级后,Canvas 所在节点会自动添加 Widget 组件。(从 1.x 项目升级无此问题)
从 2.2.0 开始,我们强化了内存管理机制,现在要求用户通过代码动态创建且独立于场景节点树的 cc.Node 必须通过 destroy() 释放,否则引擎无法知道何时回收这类节点的内存,会导致内存泄露。
// 假设 testNode 是场景中的某个节点,若之前被手动移出场景了,如
testNode.parent = null;
// 或者
testNode.removeFromParent(true);
// 或者
parentNode.removeChild(testNode);
// 若往后 testNode 还会再次用到,则无需手动 destroy 该节点
// 否则应该手动调用
testNode.destroy();
从 2.2.0 开始,我们不再建议你使用节点的 Skew 功能。Skew 通常用作在 2D 引擎中模拟 3D 效果,随着 Cocos Creator 对 3D 节点的深入支持,Skew 效果已经完全可以由 3D 节点来实现。所以为了统一使用体验,进一步优化引擎底层实现,我们废弃了 Skew 属性。不过我们依旧会保留一段时间内的向下兼容,开发者可在旧项目中延续原有做法。后续我们将进一步完善兼容方式和升级案例,择机正式移除 Skew 功能。
打开 1.x 项目的话,场景等所有资源将会自动升级,代码中的废弃接口从 2.3.3 开始将会在保持兼容的基础上同步输出报错。升级方式可参考《1.10 资源升级指南》和《2.0 升级文档》进行调整。
新的平台总是意味着新的机遇与挑战,Creator 2.4.1 版本现已全新支持 HUAWEI AppGallery Connect,将为开发者带来更多的用户及潜力,相信新的平台能爆发出更多优秀的游戏。
同时,Cocos Creator 在移动端游戏上与 HMS Core 进行深度合作,特别是在技术层面上,与 CG Kit 底层算法集成,挖掘 Vulkan 极限渲染能力,释放更大的图形渲染性能,提升渲染效率。
接下去,Cocos 将与华为进行全方位的合作,持续接入华为 HMS Core、AppGallery Connect 更多优质服务,助力开发者开发出更多高品质的游戏。
此版本让你的游戏可以一键接入华为 HMS Core,一键上传至 HUAWEI AppGallery Connect 快速发布到华为应用市场,省去开发过程中接入 SDK、上传平台等繁复操作,助力开发者打造高品质创新应用,提升游戏体验!
良好的服务是游戏不可或缺的部分,在游戏开发中,开发者常常会需要通过接入 SDK 来使用一些第三方的服务。但接入过程通常是繁杂且易出错的部分,需要耗费大量不必要的时间。
在 Creator 中,开发者基于 Cocos 的 IDE 进行游戏发布时,当选择发布到 HUAWEI AppGallery Connect,可以一键接入华为 HMS Core,当前包含账号、支付、广告和游戏等服务,近期还将支持推送、分析和定位等,可极大提升开发者的工作效率。
开发者可在服务面板中启用 SDKHub 并配置好对应的 SDK 预设。
在构建时选择 HUAWEI AppGallery Connect 平台,并选择已配置好的 SDK 预设即可。
在构建完成后,可通过上传窗口一键上传。
连尚小游戏是 WiFi 万能钥匙旗下的小游戏应用平台,具有便捷、轻量、免安装的特点。采用 Creator 开发的游戏,只需构建时选择连尚小游戏发布平台,就可以自动完成适配,获得 Cocos Creator 强大便捷的跨平台能力。
更多关于发布连尚小游戏的内容,请参考 发布到连尚小游戏。
Cocos Creator 对项目的升级操作是不可逆的,请在升级前提交或备份旧版项目。绝大多数项目通常都能自动升级,但因为项目难免存在特殊性,开发者应该根据项目自身需求,提前对新版本引擎进行试用和评估。此外,出于稳定性考虑,建议即将上线或已上线的项目谨慎升级。以下是升级说明,如果开发者们在升级中遇到困难,欢迎向我们反馈,我们会尽力协助。
从 2.3.0 开始,定制安卓原生工程时,需注意 Android 与 Android Instant 使用了同一个构建模板。
此外,在 Cocos Creator 编译 Android 时会默认执行 assembleRelease/Debug,编译 Android Instant 时会执行instant:assembleRelease/Debug。
如自定义了音频前后台切换时的暂停逻辑,升级到 2.3.0 后请移除。
目前 Creator 游戏在所有平台上前后台互相切换时,都会在内部自动暂停和恢复音频。 如果开发者之前有对这一块进行过定制,监听并执行了 cc.audioEngine.pause()/resume() 之类的音频操作,可能会和引擎默认行为冲突。如果有遇到相关的音频问题,只需移除相应的定制代码即可。
从 2.3.0 开始,Canvas 组件不再负责将 Canvas 节点尺寸设为屏幕大小,此行为将结合 Widget 组件实现。为保证兼容性,2.0 项目升级后,Canvas 所在节点会自动添加 Widget 组件。(从 1.x 项目升级无此问题)
从 2.2.0 开始,我们强化了内存管理机制,现在要求用户通过代码动态创建且独立于场景节点树的 cc.Node 必须通过destroy() 释放,否则引擎无法知道何时回收这类节点的内存,会导致内存泄露。
// 假设 testNode 是场景中的某个节点,若之前被手动移出场景了,如
testNode.parent = null;
// 或者
testNode.removeFromParent(true);
// 或者
parentNode.removeChild(testNode);
// 若往后 testNode 还会再次用到,则无需手动 destroy 该节点
// 否则应该手动调用
testNode.destroy();
从 2.2.0 开始,我们不再建议你使用节点的 Skew 功能。
Skew 通常用作在 2D 引擎中模拟 3D 效果,随着 Cocos Creator 对 3D 节点的深入支持,Skew 效果已经完全可以由3D 节点来实现。所以为了统一使用体验,进一步优化引擎底层实现,我们废弃了 Skew 属性。不过我们依旧会保留一段时间内的向下兼容,开发者可在旧项目中延续原有做法。后续我们将进一步完善兼容方式和升级案例,择机正式移除 Skew 功能。
打开 1.x 项目的话,场景等所有资源将会自动升级,代码中的废弃接口从 2.3.3 开始将会在保持兼容的基础上同步输出报错。升级方式可参考《1.10 资源升级指南》和《2.0 升级文档》进行调整。
工欲善其事,必先利其器!在长达两个月的测试后,2.4.0 版本终于来了!在此感谢给予我们宝贵意见和建议的各位小伙伴们!这个版本中包含了许多新的功能与更新,如资源管理系统重构,Asset Bundle。并优化了原生上 Label 渲染的性能,优化 Graphic 渲染效果等等。相信全新的 2.4 版本将会让大家的工作效率更加高效,游戏内容更加丰富,游戏体验进一步提升,建议所有开发者升级哦!
Asset Bundle 可将工程中的资源按照开发者的意愿进行模块划分,将不同场景不同需求的资源划分在多个包中,从而可以减少首次下载和加载游戏时所需要的时间,也可以跨项目复用,用于加载子项目中的 Asset Bundle。
Asset Bundle 还提供了优先级,压缩类型等相关设置用于对 Asset Bundle 的包体和加载进行优化。
详细请参考 Asset Bundle 和 加载 Asset Bundle。
Asset Manager 是 Creator 在 v2.4 新推出的资源管理器,其具备加载资源,查找资源,销毁资源,缓存资源,Asset Bundle 等功能。Asset Manager 拥有更好的性能,更易用的 API,更强的扩展性。其主要提供了以下几点新特性:
详细请参考 Asset Manager 和 动态加载。
支持设置 Lable 的混合选项,可在不同的使用场景下使用不同的设置以最大化文本渲染性能。详细请参考 系统文本的混合模式说明 。
原生平台上使用 FreeType 渲染 Label 的 CHAR 模式
使用 SDF 技术优化 Graphic 的锯齿问题
编辑器进一步支持更多小游戏平台的压缩纹理限制,只需在 Mini Game 项添加压缩纹理格式,即可设置包括微信小游戏,OPPO 小游戏,vivo 小游戏等多个平台的压缩纹理格式。
2.4 进一步完善原生热更新能力,优化了以下内容:
详细请参考 热更新范例教程 。
该组件会将所在节点的布局适配到异形屏手机的安全区域内,可适配 Android 和 iOS 设备,详细可查看 SafeArea 组件参考 。
Cocos Creator 对项目的升级操作是不可逆的,请在升级前提交或备份旧版项目。绝大多数项目通常都能自动升级,但因为项目难免存在特殊性,开发者应该根据项目自身需求,提前对新版本引擎进行试用和评估。此外,出于稳定性考虑,建议即将上线或已上线的项目谨慎升级。以下是升级说明,如果开发者们在升级中遇到困难,欢迎向我们反馈,我们会尽力协助。
从 2.3.0 开始,定制安卓原生工程时,需注意 Android 与 Android Instant 使用了同一个构建模板
此外,在 Cocos Creator 编译 Android 时会默认执行 assembleRelease/Debug,编译 Android Instant 时会执行 instant:assembleRelease/Debug。
如自定义了音频前后台切换时的暂停逻辑,升级到 2.3.0 后请移除目前 Creator 游戏在所有平台上前后台互相切换时,都会在内部自动暂停和恢复音频。 如果开发者之前有对这一块进行过定制,监听并执行了 cc.audioEngine.pause()/resume() 之类的音频操作,可能会和引擎默认行为冲突。如果有遇到相关的音频问题,只需移除相应的定制代码即可。
从 2.3.0 开始,Canvas 组件不再负责将 Canvas 节点尺寸设为屏幕大小,此行为将结合 Widget 组件实现。为保证兼容性,2.0 项目升级后,Canvas 所在节点会自动添加 Widget 组件。(从 1.x 项目升级无此问题)
从 2.2.0 开始,我们强化了内存管理机制,现在要求用户通过代码动态创建且独立于场景节点树的 cc.Node 必须通过 destroy() 释放,否则引擎无法知道何时回收这类节点的内存,会导致内存泄露。
// 假设 testNode 是场景中的某个节点,若之前被手动移出场景了,如
testNode.parent = null;
// 或者
testNode.removeFromParent(true);
// 或者
parentNode.removeChild(testNode);
// 若往后 testNode 还会再次用到,则无需手动 destroy 该节点
// 否则应该手动调用
testNode.destroy();
从 2.2.0 开始,我们不再建议你使用节点的 Skew 功能。Skew 通常用作在 2D 引擎中模拟 3D 效果,随着 Cocos Creator 对 3D 节点的深入支持,Skew 效果已经完全可以由 3D 节点来实现。所以为了统一使用体验,进一步优化引擎底层实现,我们废弃了 Skew 属性。不过我们依旧会保留一段时间内的向下兼容,开发者可在旧项目中延续原有做法。后续我们将进一步完善兼容方式和升级案例,择机正式移除 Skew 功能。
打开 1.x 项目的话,场景等所有资源将会自动升级,代码中的废弃接口从 2.3.3 开始将会在保持兼容的基础上同步输出报错。升级方式可参考《1.10 资源升级指南》和《2.0 升级文档》进行调整。
以上就是本次更新的内容,大家有任何意见或者建议,可以通过论坛等渠道向我们反馈哦!
优质的服务对于高效的工作流来说是不可或缺的!为了让开发者尽情挥洒创作才能,Creator 在 2.3.4 中接入了腾讯云的高品质服务,开发者可在 Creator 中非常方便地接入并使用。相信有了这些服务的加持,开发者们能够创作出更多优秀的作品!
云开发(Tencent Cloud Base,TCB) 是腾讯云为移动开发者提供的一站式后端云服务,它帮助开发者统一构建和管理资源,免去了移动应用开发过程中繁琐的服务器搭建及运维、域名注册及备案、数据接口实现等繁琐流程,让开发者可以专注于业务逻辑的实现,而无需理解后端逻辑及服务器运维知识,开发门槛更低,效率更高。
开发者可在 Creator 一键接入该服务,更多详细内容请参考 云开发。
在接入服务后,可在云函数面板管理所有云函数,包括增加,删除,同步等操作。
具体操作可参考 视频《如何在 Cocos Creator 中开通腾讯云TCB服?》 。
小游戏联机对战引擎(Mini Game Online Battle Engine,MGOBE) 为游戏提供房间管理、在线匹配、帧同步、状态同步等网络通信服务,帮助开发者快速搭建多人交互游戏。开发者无需关注底层网络架构、网络通信、服务器扩缩容、运维等,即可获得就近接入、低延迟、实时扩容的高性能联机对战服务,让玩家在网络上互通、对战、自由畅玩。MGOBE 适用于回合制、策略类、实时会话(休闲对战、MOBA、FPS)等游戏。
开发者可在 Creator 一键接入该服务,更多详细内容请参考 小游戏联机对战引擎。
具体操作可参考 视频《如何在 Cocos Creator 中开通腾讯云 MGOBE 服务?》 。
游戏多媒体引擎(Game Multimedia Engine,GME) 提供一站式语音解决方案。针对不同场景进行深度优化,覆盖游戏、社交、娱乐等多种泛互联网行业应用场景。提供实时语音、语音消息及转文本、语音分析服务,一次接入即可满足多样化的语音需求。
开发者可在 Creator 一键接入该服务,更多详细内容请参考 游戏多媒体引擎 。
Cocos Creator 对项目的升级操作是不可逆的,请在升级前提交或备份旧版项目。绝大多数项目通常都能自动升级,但因为项目难免存在特殊性,开发者应该根据项目自身需求,提前对新版本引擎进行试用和评估。此外,出于稳定性考虑,建议即将上线或已上线的项目谨慎升级。以下是升级说明,如果开发者们在升级中遇到困难,欢迎向我们反馈,我们会尽力协助。
从 2.3.0 开始,定制安卓原生工程时,需注意 Android 与 Android Instant 使用了同一个构建模板
此外,在 Cocos Creator 编译 Android 时会默认执行 assembleRelease/Debug,编译 Android Instant 时会执行 instant:assembleRelease/Debug。
如自定义了音频前后台切换时的暂停逻辑,升级到 2.3.0 后请移除目前 Creator 游戏在所有平台上前后台互相切换时,都会在内部自动暂停和恢复音频。 如果开发者之前有对这一块进行过定制,监听并执行了 cc.audioEngine.pause()/resume() 之类的音频操作,可能会和引擎默认行为冲突。如果有遇到相关的音频问题,只需移除相应的定制代码即可。
从 2.3.0 开始,Canvas 组件不再负责将 Canvas 节点尺寸设为屏幕大小,此行为将结合 Widget 组件实现。为保证兼容性,2.0 项目升级后,Canvas 所在节点会自动添加 Widget 组件。(从 1.x 项目升级无此问题)
从 2.2.0 开始,我们强化了内存管理机制,现在要求用户通过代码动态创建且独立于场景节点树的 cc.Node 必须通过 destroy() 释放,否则引擎无法知道何时回收这类节点的内存,会导致内存泄露。
// 假设 testNode 是场景中的某个节点,若之前被手动移出场景了,如testNode.parent = null;
// 或者
testNode.removeFromParent(true);
// 或者
parentNode.removeChild(testNode);
// 若往后 testNode 还会再次用到,则无需手动 destroy 该节点
// 否则应该手动调用
testNode.destroy();
从 2.2.0 开始,我们不再建议你使用节点的 Skew 功能。Skew 通常用作在 2D 引擎中模拟 3D 效果,随着 Cocos Creator 对 3D 节点的深入支持,Skew 效果已经完全可以由 3D 节点来实现。所以为了统一使用体验,进一步优化引擎底层实现,我们废弃了 Skew 属性。不过我们依旧会保留一段时间内的向下兼容,开发者可在旧项目中延续原有做法。后续我们将进一步完善兼容方式和升级案例,择机正式移除 Skew 功能。
打开 1.x 项目的话,场景等所有资源将会自动升级,代码中的废弃接口从 2.3.3 开始将会在保持兼容的基础上同步输出报错。升级方式可参考《1.10 资源升级指南》和《2.0 升级文档》进行调整。
以上就是本次更新的内容,大家有任何意见或者建议,可以通过论坛等渠道向我们反馈哦!
效率即是一切,Cocos Creator 2.3.3 正式版来啦!本次更新带来了更多新的特性,优化了性能以及提升了稳定性,希望能为广大开发者们保驾护航。建议所有开发者升级哦!
从 2.3.3 开始,Light 组件可以设置阴影类型为 SOFT_PCF3X3 或 SOFT_PCF5X5 来开启软阴影。开启后阴影就不会有硬边缘,效果更加柔和自然。
从 2.3.3 开始,在 tiled 模式下如果 SpriteFrame 包含九宫格配置,平铺时将保持九宫格的四周宽度不变,只平铺中心部分。
为了进一步提升开发效率,我们优化了网页预览时的脚本加载速度。不论是对引擎还是项目中的代码,载入速度都获得了提升。特别是在开启自定义引擎,或者使用手机扫码预览时,开发者都能得到更顺畅的体验。
小秘书是由 Cocos 官方面向开发者推出的在线即时付费技术支持服务, 您可以采用 IM 即时沟通的方式,在 Cocos Creator 中直接连线引擎官方技术支持团队。小秘书服务旨在快速解答您在开发过中遇到的各种技术和商务问题,具有以下特点:官方专业团队、高效和私密性。服务申请入口>
Cocos Creator 对项目的升级操作是不可逆的,请在升级前提交或备份旧版项目。绝大多数项目通常都能自动升级,但因为项目难免存在特殊性,开发者应该根据项目自身需求,提前对新版本引擎进行试用和评估。此外,出于稳定性考虑,建议即将上线或已上线的项目谨慎升级。以下是升级说明,如果开发者们在升级中遇到困难,欢迎向我们反馈,我们会尽力协助。
从 2.3.0 开始,定制安卓原生工程时,需注意 Android 与 Android Instant 使用了同一个构建模板。
如自定义了音频前后台切换时的暂停逻辑,升级到 2.3.0 后请移除。
目前 Creator 游戏在所有平台上前后台互相切换时,都会在内部自动暂停和恢复音频。如果开发者之前有对这一块进行过定制,监听并执行了 cc.audioEngine.pause()/resume() 之类的音频操作,可能会和引擎默认行为冲突。如果有遇到相关的音频问题,只需移除相应的定制代码即可。
从 2.3.0 开始,Canvas 组件不再负责将 Canvas 节点尺寸设为屏幕大小,此行为将结合 Widget 组件实现。为保证兼容性,2.0 项目升级后,Canvas 所在节点会自动添加 Widget 组件。(从 1.x 项目升级无此问题)
从 2.2.0 开始,我们强化了内存管理机制,现在要求用户通过代码动态创建且独立于场景节点树的 cc.Node 必须通过 destroy() 释放,否则引擎无法知道何时回收这类节点的内存,会导致内存泄露。
如原先手动从场景中移除的节点,在不需要用到的时候也需要统一 destroy():
// 假设 testNode 是场景中的某个节点,若之前被手动移出场景了,如testNode.parent = null;
// 或者
testNode.removeFromParent(true);
// 或者
parentNode.removeChild(testNode);
// 若往后 testNode 还会再次用到,则无需手动 destroy 该节点
// 否则应该手动调用
testNode.destroy();
从 2.2.0 开始,我们不再建议你使用节点的 Skew 功能。
Skew 通常用作在 2D 引擎中模拟 3D 效果,随着 Cocos Creator 对 3D 节点的深入支持,Skew 效果已经完全可以由 3D 节点来实现。所以为了统一使用体验,进一步优化引擎底层实现,我们废弃了 Skew 属性。不过我们依旧会保留一段时间内的向下兼容,开发者可在旧项目中延续原有做法。后续我们将进一步完善兼容方式和升级案例,择机正式移除 Skew 功能。
打开 1.x 项目的话,场景等所有资源将会自动升级,代码中的废弃接口从 2.3.3 开始将会在保持兼容的基础上同步输出报错。升级方式可参考《1.10 资源升级指南》和《2.0 升级文档》进行调整。
Cocos Creator 2.3.2 版本正式发布了!为了提升开发者的开发效率,Creator 始终在努力着。本次更新除了常规的缺陷修复和体验完善之外,还接入了全新的 Cocos Dashboard 系统,能够同时对多版本引擎和项目进行统一升级和管理!建议所有 2.3 版本的开发者升级!
此次推出的 Cocos Dashboard,将做为 Creator 和 Creator 3D 两个引擎统一的下载器和启动入口,方便大家升级和管理多个版本的 Creator。此外还集成了统一的项目管理及创建面板,方便大家同时使用不同版本的引擎开发项目。
管理不同版本下开发的项目
新建项目时可以选择使用不同的 Creator 版本
如果预览时出现加载警告 “Can not find module.module for path…”这个警告可能是因为升级到 2.3 后,对脚本 import/require 的路径大小写检测变严格了。在旧版本中,如果路径的大小写和实际文件不符,可能会有潜在的一些错误隐患,但不一定会表现出来。我们建议遇到这个问题的项目对相应大小写进行修正。
从 2.3.0 开始,定制安卓原生工程时,需注意 Android 与 Android Instant 使用了同一个构建模板
此外,在 Cocos Creator 编译 Android 时会默认执行 assembleRelease/Debug,编译 Android Instant 时会执行 instant:assembleRelease/Debug。
如自定义了音频前后台切换时的暂停逻辑,升级到 2.3.0 后请移除目前 Creator 游戏在所有平台上前后台互相切换时,都会在内部自动暂停和恢复音频。 如果开发者之前有对这一块进行过定制,监听并执行了 cc.audioEngine.pause()/resume() 之类的音频操作,可能会和引擎默认行为冲突。如果有遇到相关的音频问题,只需移除相应的定制代码即可。
(纯告知,无风险)从 2.3.0 开始,Canvas 组件不再负责将 Canvas 节点尺寸设为屏幕大小,此行为将结合Widget 组件实现。为保证兼容性,2.0 项目升级后,Canvas 所在节点会自动添加 Widget 组件。(从 1.x 项目升级无此问题)
从 2.2.0 开始,我们强化了内存管理机制,现在要求用户通过代码动态创建且独立于场景节点树的 cc.Node 必须通过 destroy() 释放,否则引擎无法知道何时回收这类节点的内存,会导致内存泄露。
// 假设 testNode 是场景中的某个节点,若之前被手动移出场景了,如
testNode.parent = null;
// 或者
testNode.removeFromParent(true);
// 或者
parentNode.removeChild(testNode);
// 若往后 testNode 还会再次用到,则无需手动 destroy 该节点
// 否则应该手动调用
testNode.destroy();
打开 1.x 项目的话,场景等所有资源将会自动升级,代码如有警告或报错,可参考《1.10.0 资源升级指南》和《2.0.0 升级文档》进行调整。
以上就是此次更新的详细内容。从 v2.0 用 3D 渲染器重写、v2.1 开放 3D 能力至今,Cocos Creator 缺失的 3D 能力已经在迭代中逐步补齐。我们希望能够帮助中小团队开发出惊艳的 3D 休闲项目,并且保留 Creator 做为 2D 引擎轻量高效的优势,这是现阶段 Cocos Creator 和 Cocos Creator 3D 的主要区别。与此同时,与 3D 引擎更多模块的统一,也是 2D 和 3D 两个产品线完全融合的开始。在不久的将来,Cocos Creator 将会整合两个引擎的优点,提供卓越的 2D/3D 游戏开发体验。
creator.d.ts
声明evalString
调用,避免 V8 崩溃false
的状态下修改内容,排版错误的问题 #6231Cocos Creator 对项目的升级操作是不可逆的,请在升级前提交或备份旧版项目。绝大多数项目通常都能自动升级,但因为项目难免存在特殊性,开发者应该根据项目自身需求,提前对新版本引擎进行试用和评估。此外,出于稳定性考虑,建议即将上线或已上线的项目谨慎升级。以下是升级说明,如果开发者们在升级中遇到困难,欢迎向我们反馈,我们会尽力协助。
如果预览时出现加载警告 “Can not find module.module for path…”:
这个警告可能是因为升级到 2.3 后,对脚本 import/require 的路径大小写检测变严格了。在旧版本中,如果路径的大小写和实际文件不符,可能会有潜在的一些错误隐患,但不一定会表现出来。我们建议遇到这个问题的项目对相应大小写进行修正。
从 2.3.0 开始,定制安卓原生工程时,需注意 Android 与 Android Instant 使用了同一个构建模板:
app/src
目录, 单独使用的第三方库请放入 app/libs
目录。game/src
, game/libs
目录。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.3.0 开始,Canvas 组件不再负责将 Canvas 节点尺寸设为屏幕大小,此行为将结合 Widget 组件实现。为保证兼容性,2.0 项目升级后,Canvas 所在节点会自动添加 Widget 组件。(从 1.0 项目升级无此问题)
从 2.2.0 开始,我们强化了内存管理机制,现在要求用户通过代码动态创建且独立于场景节点树的 cc.Node
必须通过 destroy()
释放,否则引擎无法知道何时回收这类节点的内存,会导致内存泄露。
destroy()
: // 假设 testNode 是场景中的某个节点,若之前被手动移出场景了,如
testNode.parent = null;
// 或者
testNode.removeFromParent(true);
// 或者
parentNode.removeChild(testNode);
// 若往后 testNode 还会再次用到,则无需手动 destroy 该节点
// 否则应该手动调用
testNode.destroy();
cc.NodePool
管理节点,则不受影响。打开 1.x 项目的话,场景等所有资源将会自动升级,代码如有警告或报错,可参考《1.10.0 资源升级指南》2和《2.0.0 升级文档》1进行调整。
经过长时间的开发和准备,又度过了这个令人记忆深刻的春节,Cocos Creator 2.3 终于正式发布啦。2.3 是一个很重要的版本,正式整合了 3D 物理、碰撞和 3D 粒子的支持,能够胜任更多品类的 3D 游戏开发!同时材质系统也从实验版升级到了正式版本,可以大幅提升游戏的表现力。建议所有版本的开发者升级,升级之前请根据项目情况进行必要的技术评估和版本备份!
Cocos Creator 2.3 正式支持了发布到趣头条小游戏这个全新平台!由于 Creator 为开发者抹平了平台之间的差异,开发者发布到趣头条小游戏就和发布到其余平台一样轻松。关于平台接入的详细步骤,请查阅《发布到趣头条小游戏》。
和 Cocos Creator 3D 一样,Creator 的物理引擎基于 cannon.js 实现,并为用户提供了高效的组件化工作流程和便捷的使用方法。目前支持了刚体、Box/Sphere 碰撞组件、触发和碰撞事件、物理材质、射线检测等特性。详细说明请参考文档。
和 Cocos Creator 3D 一样,Creator 提供了轻量的碰撞检测系统 Builtin。Builtin 是仅有碰撞检测系统的物理模块,相对于其它的物理引擎,它没有复杂的物理模拟计算,这将使得游戏的包体更小并且性能更佳。详细说明请参考文档。
3D 粒子的实现基本与 Cocos Creator 3D 一致,功能强大,支持在编辑器中调试预览。
目前提供了包括 Shape、Color、Velocity、Size、序列帧、拖尾等数十个模块选择,可以组合出各类粒子效果。
目前提供了 Constant、Curve、Two Constant、Two Curve、Gradient 等多种参数的设置方式。
详细说明请参考文档。
Creator 的材质系统最初是在 2.1.1 加入的,但是一直在编辑器中被标记为实验性功能,也缺乏相关文档。经过一段时间的迭代,这次终于升级到了正式版!这个版本的 Effect 编译语法和 Cocos Creator 3D 保持一致,可以使用 VS Code 的 Cocos Effect 插件进行编写,只是内置的一些 shader 变量名字有些区别。之前在旧版 Creator 中对材质进行过定制的开发者们,可以根据文档尝试升级到正式版,如果有遇到困难可以在论坛发帖求助。
新版材质系统的特性如下:
详细说明请参考文档
在播放骨骼动画时,开发者常常需要在骨骼动画的某个部位上挂载节点,以实现节点与动画联动的效果。在 Creator 2.3 中只需要很简单的操作,就可以将任意节点挂载到骨骼动画,节点会跟随动画进行变换,用于实现挂点效果,也可以在节点上添加碰撞组件来实现碰撞检测!详细说明请参考文档。
在 2.3 中,我们把 Spine 运行库升级到了 3.8,支持了导入 Spine 的 skel 二进制格式。skel 格式的用法和原先的 JSON 格式一致,但是文件体积更小,加载更快!
在构建面板中,如果之前已经成功构建过项目,第二次构建时就可以勾选”只构建脚本”。勾选后的构建将复用上一次构建好的引擎和资源,只对脚本进行重新编译,将会极大方便调试!这是一个在社区中呼声很高的特性,非常感谢大家的建议。
cc.macro.ENABLE_MULTI_TOUCH
宏进行设置 #5847<img>
的垂直对齐属性 align
和偏移属性 offset
,详见文档(感谢 RazgrizHsu)#6017cc.Mat4.translate
方法不再支持旋转变换,仅支持纯位移变换,如需支持旋转请使用 cc.Mat4.transform
代替。node_modules
的写法在 2.3.0 暂时不可用,下个版本将会修复。目前建议对外部库单独编译并使用插件脚本导入。Cocos Creator 对项目的升级操作是不可逆的,请在升级前提交或备份旧版项目。开发中的项目通常可无缝升级,但因为项目难免存在特殊性,开发者应该根据项目自身需求,进行新版本引擎进行技术评估。如果开发者们在升级中遇到困难,欢迎向我们反馈,我们会尽力协助。此外,出于稳定性考虑,建议即将上线或已上线的项目谨慎升级。
从 < 2.3.0 版本升级
从 2.3.0 开始,Android 与 Android Instant 使用同一个构建模板,请注意:
在 Cocos Creator 编译 Android 时会默认执行 assembleRelease/Debug,编译 Android Instant 时会执行 instant:assembleRelease/Debug。
从 2.0 - 2.3.0 版本升级
从 2.3.0 开始,Canvas 组件不再负责将 Canvas 节点尺寸设为屏幕大小,此行为将结合 Widget 组件实现。为保证兼容性,2.0 项目升级后,Canvas 所在节点会自动添加 Widget 组件。(从 1.0 项目升级无此问题)
从 < 2.2.0 版本升级
从 2.2.0 开始,我们强化了内存管理机制,现在要求用户通过代码动态创建且独立于场景节点树的 cc.Node 必须通过 destroy() 释放,否则引擎无法知道何时回收这类节点的内存,会导致内存泄露。
此外,手动从场景中移除的节点,在不需要用到的时候也需要统一 destroy。如果通过 cc.NodePool 管理节点,则不受影响。
// 假设 testNode 是场景中的某个节点,若之前被手动移出场景了,如testNode.parent = null;
// 或者
testNode.removeFromParent(true);
// 或者
parentNode.removeChild(testNode);
// 若往后 testNode 还会再次用到,则无需手动 destroy 该节点
// 否则应该手动调用
testNode.destroy();
从 < 2.0 版本升级
打开 1.x 项目的话,场景等所有资源将会自动升级,代码如有警告或报错,可参考《1.10.0 资源升级指南》和《2.0.0 升级文档》进行调整。
v2.2.1 在 v2.2.0 的基础上进行了大量的体验优化和缺陷修复,更全面地优化了性能,同时加入了支付宝小游戏的支持。建议所有版本的开发者升级,升级之前请根据项目情况进行必要的技术评估和版本备份!
随着小游戏的发展,小游戏领域也越来越被更多厂商所重视,而新的平台也意味着新的机遇。作为国内的电商巨头,支付宝近期开放了小游戏的支持,Creator 也在第一时间进行了适配,并在 v2.1.4 整合了发布到支付宝小游戏的能力。目前 Cocos Creator 2.2.1 也同步支持了支付宝小游戏,使用说明请参考《发布到支付宝小游戏》。
游戏引擎插件是微信 7.0.7 版本新增的一项功能,能极大减少游戏的下载时间。对于这个重大利好,Cocos 在第一时间就发布了对应的编辑器插件,提供了对 Creator 老版本的有力支持。目前此功能也正式合并到了 v2.2.1 中,使用起来会更加便捷。开发者们只需在 构建发布 面板中,勾选“允许分离引擎”,然后正常构建发布即可,无需其它人工操作。详见《微信小游戏引擎插件使用说明》。
// 假设 testNode 是场景中的某个节点,若之前被手动移出场景了,如
testNode.parent = null;
// 或者
testNode.removeFromParent(true);
// 或者
parentNode.removeChild(testNode);
// 若往后 testNode 还会再次用到,则无需手动 destroy 该节点
// 否则应该手动调用
testNode.destroy();
为了让你的游戏在每一个平台上都表现出色,Cocos Creator 每一天都在努力发展。此次更新的 v2.2 版本在大幅提升了原生平台性能的同时,也是 Cocos Creator 第一次在原生性能上超越 Cocos2d-lua 的里程碑版本!v2.2 包含了大量的功能增强和体验改进,欢迎所有版本的开发者升级感受。
在此版本中,我们对渲染引擎进行了大幅度升级,在原生平台上实现了巨大的性能提升,不仅完胜了所有 Cocos Creator 过往版本,更超越了 Cocos2d-JS 和性能一贯优异的 Cocos2d-lua。因此 2.2 版本的 Cocos Creator,已经能够在原生平台上满足所有 Cocos 新老开发者的性能需求。
在这次的性能测试中,我们选取了 Android 和 iOS 两款比较有代表性的低端机型 OPPO A57 和 iPhone 6S Plus,以便贴近真实使用场景,因为通常高端机型的性能问题都不大。我们对比测试了 Cocos Creator 2.2.0、Cocos Creator 1.9.3,还有最传统和有代表性的 Cocos2d-JS 3.17.1 及 Cocos2d-lua 3.17.1。测试结果表明:
此外,2.2 版本在 iOS 不但帧率获得提升,GC 时的卡顿也大大减轻,实际体验将更加流畅。
下面是详细性能数据:
此版本加入了对 3D 模型的渲染合批的支持,该特性能有效降低 3D 游戏的 Drawcall。要启用此特性,你只需在 Mesh Renderer 上勾选 enableAutoBatch 属性,引擎便会根据所用材质,以及 Mesh 的顶点格式、Primitive Type 自动进行合批。为了获得更好的优化效果,建议你只对那些可以被合批并且顶点数量较少的模型启用此选项。
我们在此版本中新增了 PVR 压缩纹理的 alpha 通道分离格式(RGB+A)。
该格式使用类似 etc1 的处理方式对纹理的透明通道进行分离和压缩,压缩后纹理高度将会是原图的两倍,因此能避免常规的 PVR RGBA 格式画质很低的问题。
允许用户采用类似自定义构建模板的方式对浏览器预览所用的网页进行定制,支持 html、jade、ejs 三种网页格式,详见《网页预览定制工作流程》。
我们在 Light 组件中新增了环境光(ambient)类型设置,用于对 3D 场景进行基础照明,常用于解决模型背光面全黑的问题。只需要在节点创建菜单中选择“Create Light → Ambient”即可。也可以在节点上添加 Light 组件,并且设置 type 为 AMBIENT 进行创建。
在 2.2.0 版本中,我们再次优化了 2D 骨骼动画在各个平台上的性能。
下面是详细数据:
要启用加速模式,只需要在 Spine 或 DragonBones 组件上设置 Animation Cache Mode 为 SHARED_CACHE 或 PRIVATE_CACHE 即可。关于加速模式的更详细信息,可参考文档中的属性说明。
2.2 进一步完善了 TiledMap 的支持。现在可支持 grid 旋转、grid 动画、图象图层、图层偏移、object group 文本,支持单个图层多个 tileset。还支持在场景中添加子节点,并与地图产生遮挡关系。并且修复了单个地图顶点超过 65535 后渲染错误的问题。文档详见《TiledMap 组件参考》,使用案例详见引擎自带范例中的 ShieldNode。
我们为属性检查器加入了宽度调整功能,用以解决在某些组件上属性名显示不全的问题。现在用户无需大幅调整整个面板的尺寸,只需要拖动属性名右侧的分割线就可以自由调节分割比例。
label.enabled = false
替换为 label.node.active = false
或者 label.node.opacity = 0
此外,手动从场景中移除的节点,在不需要用到的时候也需要统一 destroy。如果通过 cc.NodePool 管理节点,则不受影响。
// 假设 testNode 是场景中的某个节点,若之前被手动移出场景了,如
testNode.parent = null;
// 或者
testNode.removeFromParent(true);
// 或者
parentNode.removeChild(testNode);
// 若往后 testNode 还会再次用到,则无需手动 destroy 该节点
// 否则应该手动调用
testNode.destroy();
为了让你的游戏在每一个平台上都表现出色,Cocos Creator 每一天都在努力发展中。此次发布的 2.1.4 在 2.1.3 的基础上增加了支付宝小游戏的支持,欢迎大家抓住时机,抢先体验!
Cocos Creator 正式支持发布到支付宝小游戏这个全新平台。由于 Cocos Creator 为开发者抹平了平台之间的引擎差异,开发者发布到支付宝小游戏就和发布到其余平台一样轻松。关于平台接入的详细步骤,请查阅《发布到支付宝小游戏》。据悉,目前支付宝小游戏的各项平台能力正在陆续开放中,同时也对产品的合作持开放态度,大家可以提前准备,迎接新的机遇。
Cocos Creator 2.2.1 正在论坛火热公测中,欢迎体验。此版本也将集成支付宝小游戏的发布支持,并且继续提升原生平台的执行效率,优化场景切换、对象排序时的运行表现。正式版将于不久发布,敬请期待。
自从 Cocos Creator 2.1.0 发布以来,经过了半年的更新迭代,版本已经趋于稳定,目前 2.1 的新增用户已经占据主流。因此我们计划减少 2.0 版本的后续维护力度,将分散的精力集中投入到后续发展中,力争将 Cocos Creator 打造成更加专注、开放、健康的开源平台。
本次更新的 v2.1.3 版本,旨在优化体验和修复缺陷,建议所有开发中的 v2.0、v2.1 项目升级。详细的改动说明如下:
为了支持即将发布的 iOS 13 操作系统,我们将 iOS 原生平台上的 VideoPlayer 底层实现由 MPMoviePlayerController 替换为了 AVPlayerContoller[#1831],同时将WebView 底层由 UIWebView 替换为了 WKWebView[#1837]。
随着小游戏的玩法越来越丰富,开发者对于扩大包大小的需求越来越强烈,所以 vivo 小游戏提供了分包加载这一个功能。 所谓的分包加载,即把游戏内容按一定规则拆分为几个包,在首次启动时先下载必要的包,这个必要的包我们称为「主包」,开发者可以在主包内触发其它分包的下载,从而把首次启动的下载耗时分散到游戏运行中。详细说明请参考[分包加载]
自从 Cocos Creator 2.1.0 发布以来,经过了半年的更新迭代,版本已经趋于稳定,目前 2.1 的新增用户已经占据主流。因此我们计划减少 2.0 版本的后续维护力度,将分散的精力集中投入到后续发展中,力争将 Cocos Creator 打造成更加专注、开放、健康的开源平台。
本次更新的 v2.1.2版本,不仅包含了常规的体验优化和缺陷修复,还着重优化了纯 2D项目的包体,以及自动图集的生成尺寸,建议所有 v2.0 开发者升级。同时,该版本也合并了 v2.0.10 的所有改动,支持了小米快游戏和即刻玩小游戏这两个全新平台。详细的改动说明如下:
根据之前公开的说明,为了加快迭代速度,我们一直将 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 正式支持发布到即刻玩小游戏,详细用法请查阅《发布到即刻玩小游戏》。
从 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 开发团队。
自从 Cocos Creator 2.1.0 发布以来,我们收到了来自用户大量的宝贵建议。根据之前公布的计划,我们会持续加快对 v2.1 系列的迭代,以便尽快消化用户们的建议。同时为了防止这些改动影响到老项目的稳定性,我们仅推荐有 3D 需求的项目升级到 v2.1,其它项目可以继续使用 v2.0,等到 v2.2 发布后再同时升级上来。本次 v2.1.1 的升级主要支持了 3D 场景编辑、摄像机预览和光照系统,同时也合并了最新 2.0.x 的有关改动。
场景编辑器允许一键切换至 3D 编辑模式,方便对 3D 对象、摄像机、灯光进行编辑。详见文档《3D 场景》。
新增了独立的预览面板,能够在场景编辑的过程中直观地预览摄像机看到的画面。面板打开方式:主菜单 → 面板 → 游戏预览,预览面板可置于独立窗口,也可拖进编辑器主窗口。
新增了 Light 组件,用于在场景中布置光源,还可结合MeshRenderer 设置阴影效果。详见文档《光源组件参考》。
现在用户可以单独设置 Text Label、Placeholder Label 和 Background 节点,变得更加灵活和简单,也更符合组件化的开发方式。详见文档《EditBox 组件参考》。
新增了 LabelShadow 组件,用于给 Label 组件添加阴影效果,和 LabelOutline 用法类似。详见文档《Label 组件参考》。
添加了 cc.primitive模块,用于在运行时动态创建 3D 模型,如 box、cone、cylinder、plane 等。详见文档《基础 3D 物体》。
加入了材质系统的支持,允许用户创建 Material 和 Effect(Shader)资源类型。需注意的是,目前的材质系统主要是提供给引擎内部使用,仅供开发者预览。我们计划在 2.1.2 就对材质系统进行大幅度升级,届时此版本的材质将无法升级到 2.1.2。
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 潜能释放出来,也保证了无缝的编辑器使用体验,因此这次的改变是完全不同性质的。
v2.0 和 v2.1 将在一段时间内共同发展,v2.0 会继续维护,增加更多的性能优化和缺陷改善。我们很快将对 v2.0.7 进行公测,在这个版本中我们优化了引擎的渲染性能,尤其是原生平台的 Spine 和 DragonBones,性能都有了很大幅度的提升。
相比 v2.0,v2.1 的提升将主要围绕 3D 领域,我们推荐有 3D 需求的新项目升级到这个版本,并且在论坛等渠道和我们建立联系,我们负责 3D 的小伙伴将提供相关支持。由于 v2.1 是一个很新的版本,我们将加快迭代频率,尽量满足开发者的需求。特别是目前 v2.1.0 版本仍不支持 3D 场景编辑,仅能够在属性检查器中对节点进行 3D 参数的设置。我们将会在近期就推出 v2.1.1版本,用来支持 3D 场景编辑和材质系统,优化 3D 开发流程。
在 2.1 中,默认新创建出来的节点都仍然是 2D 的,当有需要时,只需要点击节点右上方的 2.5D 按钮就能切换成 3D 模式,切换后就能编辑 z 轴,详见 [3D Node]。
和 Node 一样,Camera 也分为了两种模式。当你把 Camera 组件添加到普通的 2D 节点上时,它就是一个 2D Camera。当你把 Node 切换到 3D 模式后,Camera 也会进入 3D 模式,3D 模式下即可编辑 Camera 的 FOV 等参数。
目前 Cocos Creator 支持导入的 3D 模型格式为使用非常广泛的 .fbx,基本上 3D 建模软件都支持导出这种格式。导入的流程很简单,只需要将 .fbx 模型资源拖入到资源管理器,等待片刻即可完成导入工作。导入完成后,在资源管理器中看到导入后的模型资源是一个可以展开的文件夹,导入模型的时候编辑器会自动解析模型的内容,并生成 Prefab、网格、骨骼动画等资源,详见[导入模型]。
Mesh Renderer 用于绘制网格资源,详见[Mesh Renderer 组件]。
骨骼动画组件继承自 Animation 组件,骨骼动画组件的使用方法与 Animation 组件没有太大区别,只是骨骼动画组件使用的剪辑只能是骨骼动画剪辑。骨骼动画组件将在导入模型时自动添加到模型的 Prefab 中,详见[骨骼动画组件]。
更多 3D 相关说明,请查阅文档[3D 系统]。
大幅优化自动图集构建速度,如果图集没有改变的话则直接使用上次构建的结果。
v2.0 相比 v1.x,有一些情况引擎不会进行渲染批处理,导致了 Draw Call 的增加。v2.1 对这些情况重新进行了优化。如之前 Color 或 Opacity 不同无法批处理,Sliced 和非 Sliced 共用同一贴图无法批处理,Opacity 为 0 的节点仍占用 Draw Call 的问题都得到了解决。
在项目设置 - 预览运行面板中,新增了“开启模拟器调试界面”选项和“等待调试器连接”选项。前一个选项的作用是,在模拟器预览项目时将自动打开调试窗口。后一个选项的作用是,暂停启动过程直至调试器连接完成,用于调试加载过程。
可以直接在编辑器中设置纹理需要的压缩方式,Creator 将在项目发布时自动对纹理进行压缩。在 Web 平台上支持同时导出多种图片格式,引擎将根据不同的浏览器自动下载合适的格式,详见[压缩纹理]。
从 v2.0.1 开始,Cocos Creator 升级了开放数据域解决方案,请参阅[接入小游戏开放数据域]。
从 v1.10 开始,Cocos Creator 对底层资源类型进行了重构,大多数项目不受影响,但有些项目可能会收到一些警告,详情请查阅[v1.10 资源升级指南]。
以上就是 Cocos Creator v2.1.0 的更新说明。各位开发者进入 Cocos 官网下载新版本,下载完毕新建一个 example 工程,打开 assets/cases/3d 下的案例即可体验。