Cocos Creator 3D 自 1.0.0 发布以来,感谢所有开发者的支持。我们兴奋地发现发布不到三周,就有几款 3D 小游戏上线了,多少也算验证了我们在工作流效率上所付出的努力。相信目前的 Cocos Creator 3D 对于制作纯 3D 小游戏已经不是问题,欢迎更多开发者尝试。
大家可以搜索微信小游戏看一下目前已经上线的基于 Cocos Creator 3D 的小游戏
- 疯狂接盘侠
- 画线射门
- 熊灵传说
这只是我们偶然发现的一些案例,如果有开发者已经上线游戏也欢迎告诉我们。这些游戏虽然还比较简单,不过我们相信,更多高质量的作品正在开发中,我们的几个合作项目也进入到中后期,一经发布一定会告诉大家。
同时在此也感谢社区中无私奉献各种教程 Demo 的同学:Blake 老师的直播,晓衡在" Creator 星球开发社区"公众号里面的分享,“一枚小工”在同名公众号中的分享,白玉无冰(公众号同名)的简易版蚂蚁庄园登山赛,等等。我们真的很感激有这样一个优秀的技术社区。
废话不多说,下面是 Cocos Creator 3D 公测版本的详细说明,欢迎大家升级并反馈问题。
下载链接
重点功能介绍
-
微信插屏配置
正式支持微信插屏配置,只需要构建时选择替换插屏,提交项目信息即可自动替换微信插屏图片,可以选择在插屏下方保留一个不显眼 Powered by Cocos Creator 3D 水印,如果您这么做我们会非常感激。
-
支持物理材质编辑
目前的功能还比较简单,只支持 Friction 和 Restitution。
-
Effect 资源面板
Effect 的资源面板现已支持预览编译后的 shader 代码,并支持可视化编辑 shader 的每个 define。
-
优化导入和数据迁移的效率
我们测试的一个超大型项目,数据迁移过程中的内存使用从 4-6 GB 降低到了 0.5-1.2GB,时间从降低到了原本的 10 - 30%。
-
Raycast 支持
v1.0.1 在物理模块 API 中支持对 Collider 进行 Raycast,示例代码如下
// 找到所有结果
PhysicsSystem.instance.raycast(worldRay, Layers.Enum.DEFAULT, maxDistance, queryTrigger);
// 找到最近的匹配结果,两个 API 性能是一样的
PhysicsSystem.instance.raycastClosest(worldRay, Layers.Enum.DEFAULT, maxDistance, queryTrigger);
其他编辑器更新日志
- [FEATURE] 偏好设置里支持指定不同类型资源的打开程序:代码类资源,图片类资源
- [FEATURE] 修改节点 layer 属性时,询问是否递归修改所有子节点
- [FEATURE] FBX 以及 glTF 数据不存在的时候显示默认值
- [FEATURE] 对 Meta 增加换行符检测,如果文件内有 CRLF 则默认使用 CRLF 换行,没有则使用 LF
- [IMPROVE] 优化了资源导入、迁移的速度
- [IMPROVE] 优化盒子碰撞器的编辑操作体验
- [IMPROVE] 支持全局的自定义引擎位置配置
- [IMPROVE] 在编辑器环境下不预编译 shader
- [IMPROVE] 将光源组件集合在独立的组件子菜单项中
- [IMPROVE] 优化资源搜索面板使用以及统一 icon 数据管理
- [IMPROVE] 去掉新建脚本名称中的空格并减少树形缩进
- [IMPROVE] 移动资源时增加了一个是否覆盖原文件的对话框
- [IMPROVE] 优化 prefab 资源丢失时的展示
- [IMPROVE] 防止 prefab 不指向自己
- [IMPROVE] 优化资源很多资源树很长的情况下滚动有上下空白区的问题
- [IMPROVE] 优化文件夹在自身粘贴的操作
- [IMPROVE] 去掉删除资源时的因文件系统产生的阻塞
- [IMPROVE] 优化 SphereLight 组件界面
- [IMPROVE] 动画编辑器选中关键帧后自动选中对应节点,选中对应的属性轨道
- [IMPROVE] 动画编辑器 clip 发生变化后检查并选中关键帧
- [IMPROVE] 优化动画编辑器中 Rotation 显示
- [IMPROVE] 记忆节点树层级的展开、折叠状态,支持 alt 键全部折叠或展开
- [IMPROVE] 数组折叠 UI 上 +/- 有歧义,修改为倒三角
- [IMPROVE] 优化 fbx/gltf 资源的材质编辑效果
- [IMPROVE] 优化构建面板操作以及支持单独编译引擎
- [IMPROVE] 调整编辑器 Camera 的近裁剪面为 0.1
- [IMPROVE] 禁止 SkeletonAnimationComponent 的 clips 的编辑
- [IMPROVE] 场景拖拽的时候,不响应任何其他的事件
- [IMPROVE] 添加反序列化容错
- [FIX] 修复项目配置无法被保存的问题
- [FIX] 修复资源迁移的时候导致的内存泄漏
- [FIX] 修复资源迁移失败导致死循环的问题
- [FIX] 修复场景未做任何修改却产生数据差异提示需要保存的问题
- [FIX] 修复场景文件不存在时保存场景无效的问题
- [FIX] 修复 HDR 模式下的 gizmo 渲染问题
- [FIX] 修复节点移除时子节点的 gizmo 仍然残留在编辑器上的问题
- [FIX] 修复 gizmo 的受光表现
- [FIX] 修复 undo 后阴影丢失的问题
- [FIX] 修复并升级 glTF importer 的问题
- [FIX] 修复某些 glTF-embedded 资源导入数据错误的问题
- [FIX] 修复包含内嵌贴图资源的 FBX 文件的导入问题
- [FIX] 修复模型导入时 normal 和 tangents 数据导入问题
- [FIX] 修复资源面板列表偶现显示不正确的问题
- [FIX] 修复导入操作系统上创建的文件夹时没有保留文件夹里 meta 文件的问题
- [FIX] 修复父资源拖拽进 inspector asset 编辑框无效问题
- [FIX] 修复 uuid 冲突的时候,误将旧资源 uuid 替换的问题
- [FIX] 修复 ui prefab 从资源还原时场景不显示的问题
- [FIX] 修复 prefab 还原过程中 Node 类型对象发生的引用错误问题
- [FIX] 修复 Effect 资源的 define 提取问题
- [FIX] 修复材质 PipelineStates 没有读取 Effect 文件中默认值的问题
- [FIX] 修复 TextureCube 删除部分子资源时报错的问题
- [FIX] 修复框选动画编辑器关键帧时的问题
- [FIX] 修复动画编辑器 duration 在移动时可能出现的位置不准确
- [FIX] 修复动画编辑器更改 sample 后当前控制杆的更新
- [FIX] 修复动画编辑器中丢失属性无法移除以及点击报错问题
- [FIX] 修复动画编辑器选中关键帧移动一次后移动其他帧的问题
- [FIX] 修复动画编辑器 duration 在修改帧数后显示异常
- [FIX] 修复动画编辑器移除关键帧后依旧显示的问题
- [FIX] 修复动画编辑器按 Ctrl 键无法多选关键帧的问题
- [FIX] 修复刷新编辑器后 inspector width 取值不正确的问题(可能导致材质面板异常)
- [FIX] 修复 inspector 中编辑数据时的可能发生的报错
- [FIX] 修复 inspector 中 node 编辑框双击跳转问题
- [FIX] 修复数字输入框值变化的精度、最大最小值控制的问题
- [FIX] 修复 Camera Preview 黑屏的问题
- [FIX] 修复构建微信时未保留原有的子域文件夹问题
- [FIX] 修复程序关闭的时候 profile 数据可能未保存的问题
- [FIX] 修复 ui 组件 clear 按钮不显示
- [FIX] 修复 prefab 在动画编辑状态下,inspector 闪烁的问题
- [FIX] 修复层级面板取消关闭时 loading 遮罩一直存在的问题
- [FIX] 修复微信开发者工具设置方式
引擎更新日志
- [FEATURE] 属性支持独立的 type decorator: @integer, @float, @string, @boolean, @type
- [FEATURE] 给 Sprite 组件添加灰度模式
- [FEATURE] 新增微信 SubContextView 组件,用于配合 Creator 生产的子域工程使用
- [FEATURE] glTF 格式支持 khr-draco-mesh-compression
- [FEATURE] 内建材质支持顶点色
- [IMPROVE] 使用二进制格式存储并优化骨骼动画序列化后的尺寸
- [IMPROVE] 大幅降低 Profiler 在渲染过程中的性能损耗
- [IMPROVE] 复用材质实例,单独处理 PSO 状态变化的更新,优化内存和性能
- [IMPROVE] 统一 SkeletalAnimationClip 功能到 AnimationClip 中(包含数据迁移)
- [IMPROVE] 支持最高 32 个 shader 宏定义
- [IMPROVE] 优化 shader 中的对运行环境支持精度的判断
- [IMPROVE] 完善 RenderScene raycast 功能
- [IMPROVE] 防止在父节点生效或禁用过程中修改相关的节点树
- [IMPROVE] 在基于物理系统的 Transform 同步完成后发送碰撞检测相关事件
- [IMPROVE] 增加 geometry 中的相交判断 API 并修复部分问题,新增 line_sphere, line_aabb, line_obb
- [IMPROVE] 优化 Widget 组件对百分比数据的保存方式和编辑器呈现(包含数据迁移)
- [IMPROVE] 优化 Skybox 在场景加载过程中的内存创建
- [IMPROVE] 在音频成功播放后取消不必要的事件监听
- [FIX] 修复模型动态批处理只支持十个节点的问题
- [FIX] 禁止向场景中添加组件
- [FIX] 修复 setWorldScale 计算错误
- [FIX] 修复 Tone mapping 和阴影渲染
- [FIX] 修复部分设备精度问题导致的 WebGL1 下的渲染错误
- [FIX] 在微信环境下禁用 VAO 以避免部分机型下的渲染丢失问题
- [FIX] 修复微信环境下部分 GL 常量不存在的问题,使用值代替索引
- [FIX] 修复部分情况下微信平台音频无法播放和音量控制无效的问题
- [FIX] 修复粒子拖尾在 UI 下无法显示的问题
- [FIX] 修复粒子拖尾的计算问题
- [FIX] 修复模型属性初始化顺序问题
- [FIX] 修复对 GLTF 的 cubic spline 动画插值支持
- [FIX] 修复 UI ScrollView 的回弹效果
- [FIX] 修复 UI 节点在微信下的概率性排序问题
- [FIX] 修复常驻 Canvas 节点在切换场景时导致的摄像机移除问题
- [FIX] 修复基于 Kinematic 的物理同步
- [FIX] 修复禁用的 RigidBody 组件仍然生效的问题
- [FIX] 修复地形中类型定义的错误
- [FIX] 修复 TS WebGL 对象类型提示
文档和案例更新
- [Sample] 新增完整游戏弹弹乐 3D项目,后续会增加教程
- [Sample] 新增物理小车 Demo
- [Sample] 新增下落球球 Demo
- [Sample] 新增滚动小球 Demo
- [Sample] 新增吞噬黑洞 Demo
- [DOC] 新增 PageView 的使用文档
- [DOC] 新增内置 shader 变量的文档
- [DOC] 新增 AutoAtlas 资源的使用文档
- [DOC] 新增动态合批使用文档
- [DOC] 新增压缩纹理使用文档
- [DOC] 增加 Canvas clearFlags 属性的说明
- [DOC] 优化构建选项说明
- [DOC] 优化 Effect 格式文档
- [DOC] 完善模型资源的使用介绍(骨骼动画裁剪)
- [DOC] 修复一些文档中的错误