又见面啦,最近 Cocos Creator 引擎的更新还真是相当频繁呢,3D 引擎也给带来了大家翘首以待的新平台和新功能支持,感兴趣的同学尽快下载 v1.0.2 社区版本测试吧!
注意备份好项目哦
版本更新
官网已更新正式版本
重点功能
1. 新增 OPPO、vivo、华为 平台支持
v1.0.2 的最重要目标之一就是增加小游戏平台的支持,我们已支持了 OPPO、vivo、华为 平台,目前已经可以发布进行测试。欢迎大家积极测试并将你们的适配问题反馈给我们,争取在 1.0.2 可以完美支持这些平台。
我们还在继续扩展平台支持能力,原生平台和支付宝平台在 v1.1 开发版本中也已经成功运行起来,敬请期待。
2. UI Static Batch
从 v1.0.2 开始,在 UI 节点上你可以挂载一个 UIStaticBatchComponent 组件(参考文档),UI 静态合批组件是一个提升 UI 渲染性能的组件,当标记 collectMark 属性为 true 的时候,引擎就会在当前帧渲染过程中收集该 UI 节点子树(除模型以及 Mask 和 Graphices)下所有的渲染数据,存储为一个静态的 IA 渲染数据,并在后续的渲染流程中使用静态数据进行渲染,不再遍历其节点树。此后的坐标变换将不再生效,当你需要修改静态数据的时候,可以再次标记 collectMark 来重新触发渲染数据收集。
3. 微信引擎分离插件功能
我们已在框架层支持微信的引擎插件功能,以尽可能降低小游戏平台的加载耗时,这个功能暂时还不可以测试,我们将在正式版发布后正式开启。
4. API 改动说明
- 在 v1.0.2 正式版中,为了更清晰,UIStaticBatchComponent 的 collect 属性名改为 collectMark 属性名,具体使用方法请参考文档
- 为了避免物理事件不准确和物理节点的抖动,PhysicsEngine 中添加 useFixedTime API 来设置是否使用固定的时间步长进行模拟,感谢@MFshangying 的论坛反馈
编辑器其他重要更新
- [FEATURE]Inspector 中点击添加组件时,新增组件分类和搜索功能
- [FEATURE]模型动画资源面板新增支持缩放坐标轴、支持更改 FPS、支持拖拽切割动画
- [FEATURE]支持资源和节点的剪切操作
- [FEATURE]项目设置中增加项目全局 layer 配置
- [FEATURE]新增 effect 头文件资源类型(chunk),所有内置头文件全部资源化
- [FEATURE]偏好设置中新增实验室标签页
- [FEATURE]Effect 资源编译加入无效代码剔除流程
- [FEATURE]为 glTF 导入器的报错信息提供中文版本
- [FEATURE]开放各个小游戏平台的插屏设置
- [IMPROVE]优化 glTF 导入器以保障更优的 glTF 一致性测试结果
- [IMPROVE]优化 glTF 和贴图的导入逻辑,使用异步读取避免卡顿
- [IMPROVE]避免 glTF 导入过程中出现未命名的动画 clip
- [IMPROVE]优化 FBX2glTF 转换失败时的报错信息
- [IMPROVE]优化 Effect 的语法检查能力
- [IMPROVE]提供通用顶点着色器的 general-vs.chunk
- [IMPROVE]简化构建 JS 和 CSS 资源的流程
- [IMPROVE]更新 inspector 内部组件命名
- [IMPROVE]优化 inspector 相关的 Drag n Drop 组件逻辑
- [IMPROVE]针对 NPOT 图片设置 wrap mode 时做出警告
- [IMPROVE]构建过程中添加了脚本构建以及合图编译的 debug 信息
- [IMPROVE]启动过程中检查项目是否合法,不合法的话报错并关闭
- [IMPROVE]移除构建时对游戏名称的中文限制
- [FIX]解决层级和资源面板在高分辨率屏幕下的滚动跳跃问题
- [FIX]修复 inspector 组件重命名替换的遗漏
- [FIX]修复 Dashboard 切换 tab 中的一处判断错误
- [FIX]修复动画编辑器界面 speed 更改后的数据更新问题
- [FIX]修复动画编辑器中 active 属性轨道动画无效的问题
- [FIX]修复动画编辑器左键移除关键帧的问题,以及增加关键帧移除的容错
- [FIX]修复切换场景时可能存在的选中相同 uuid 节点的问题
- [FIX]修复替换插屏功能中是否保存水印数据存储错误的问题
- [FIX]修复 UIComponent 组件的显示名称以及单双击操作
- [FIX]修复 bitmap front 的 meta 更新问题
- [FIX]修复快速重复复制同一个资源 DB 可能导入失败的问题
- [FIX]修复取色器窗口不响应回车确认事件的问题
- [FIX]修复编辑多个粒子时,展开状态没有被正确保留的问题
- [FIX]修复多个粒子节点删除时场景面板里的粒子控制面板不会消失的问题
- [FIX]修复无法获取到 menu 参数的问题
- [FIX]修复编辑器打开的时候会白一段时间的问题
- [FIX]修复引擎启动时窗口大小为 0 引发的报错
- [FIX]修复刷新编辑器或弹出面板时资源未保持选中的问题
- [FIX]修复渐变组件初始化值没有传入的问题
- [FIX]修复偏好设置中微信开发者工具在 mac 无法选择路径的问题
- [FIX]修复 node command not found 的问题
- [FIX]修复 RGBE 格式 cubemap 的生成问题
- [FIX]修复数字输入框的精度和步长空值判断
- [FIX]修复 OPPO 小包模式的打包问题
- [FIX]修复 OPPO/vivo/Huawei 平台的打包替换插屏资源的功能
- [FIX]修复 Camera 的 visibility 下拉框未显示自定义 layer 的问题
- [FIX]修复创建自定义构建模板报错的问题
- [FIX]修复微信子域文件夹拷贝问题
- [FIX]修复微信子域不存在时的文件夹未清空问题
- [FIX]修复 render texture 资源导入问题
- [FIX]修复 UI kit 在 Mac 全屏模式下的体验问题(感谢 @傻狍子 的反馈)
引擎其他重要更新
- [FEATURE]提供 2D 相机下映射并同步 3D 节点位置的通用组件
- [FEATURE]Sprite 新增 Tiled 渲染模式
- [FEATURE]支持多于 32 个 Effect 宏定义
- [FEATURE]兼容 iPadOS 的桌面模拟模式
- [IMPROVE]重构 Model 内存管理策略
- [IMPROVE]优化更新 Standard 材质接口
- [IMPROVE]优化骨骼动画模型包围盒计算
- [IMPROVE]将 UI 渲染组件的 priority 属性迁移到 UITransform 组件上
- [IMPROVE]将 Node TRS 更新事件从字符串更改为位标记,兼容旧版本代码
- [IMPROVE]优化循环引用导致组件类型丢失时的报错信息,帮助用户找到引发错误组件
- [IMPROVE]Sprite 组件上保留用户设置的 SpriteAtlas
- [IMPROVE]切换 Layout Alignment 的时候在非对齐方向和父节点同步一次位置,更方便切换
- [IMPROVE]优化引擎内的无依赖 Playground 实现
- [IMPROVE]优化 Particle 渲染模式在材质中的设置
- [IMPROVE]避免生成 shader 中未开启逻辑中的 UBO 对应 BindingLayout
- [IMPROVE]针对空场景优化管线内每帧执行的函数实现
- [IMPROVE]更好的检测深度贴图是否支持的方法
- [IMPROVE]物理引擎中添加 useFixedTime API 来避免物理事件不准确和抖动
- [IMPROVE]将 UIStaticBatchComponent collect 属性改为 collectMark 属性
- [IMPROVE]增加用于骨骼动画计算的贴图尺寸
- [FIX]修复 RenderScene 中对 Light 的管理
- [FIX]修复渲染器中对默认主光源的管理
- [FIX]修复插屏贴图 Base64 字符串为空时的错误
- [FIX]修复 OPPO、支付宝等小游戏平台上无法获取和更新第 0 位 uniform 的问题
- [FIX]修复部分平台不支持 OES_element_index_uint 扩展时模型无法渲染的问题
- [FIX]在 OPPO 等 Runtime 平台上禁用 VAO
- [FIX]修复 SpotLight 的剪裁问题
- [FIX]修复父节点为 undefined 时 _onPreDestroyBase 的逻辑判断错误
- [FIX]修复 SkinningModelComponent 和 ModelComponent 的初始化和启用逻辑
- [FIX]修复 Canvas 组件启动时 camera viewport 没有初始化的问题
- [FIX]修复 AudioBufferSourceNode 的 start 被调用多次导致的报错问题
- [FIX]修复不同层级 Canvas 渲染时可能排序不正确的问题
文档和案例更新
- 弹弹乐教程更新
- 添加 Huawei、OPPO、vivo 平台构建文档
- 添加物理材质文档
- 添加 Raycast 使用文档
- 添加 UIStaticBatchComponent UI 静态合并组件文档
- 添加 UICoordinateTracker UI 坐标跟踪映射组件文档
- 优化材质系统文档
- 去除文档范例代码中的 cc. 使用
- 修复 Geometry API 文档错误