hello,各位同学,本次 3.8.7 的第一个论坛版本已经准备完毕,大家有空可以体验一下,以下是本次论坛版本的主要更新情况。
引擎
新功能
Sorting Layer 复用 3D 渲染层定义面板,可以在"项目设置"->“Sorting Layers” 中配置 Sorting Layer 列表,Sorting Layer 的优先级比 Sorting Order 更高。Sorting Order 为整型,默认为 0,值范围 -32768~32767。Layer 相同,Sorting Order 值越低,越先渲染。
注意:2D 渲染队列中遇到 Mask 渲染器会立即执行当前 2D 渲染队列中的所有渲染器。
- 添加 Global Uniform 支持。PR PR PR PR
- 添加模块条件控制功能。PR
- 为左下角 Profile 面板添加半透背景。PR
- 为新管线添加 Global Uniform 的设置接口。PR
- 添加 Tween.bindNodeState(v: boolean) 接口,用于控制 Tween 的 pause/resume/stop 状态是否自动关联到 Node active/inactive/destroy 状态,默认关联,传入 false 可禁用关联。PR
- 添加 AnimationManager 的 animationStates 获取器: PR
- 添加 Profiler.setBackgroundColor API: PR
- 添加 Profiler.setFontColor API: PR
- 构建时可以选择合并 AnimationClip 文件, 减少文件数量, 提升加载速度: PR
优化
- 同步 Spine 仓库 3.8 分支的最新改动。PR
- 添加 Spine wasm 的生成说明文档。PR
- 为 Spine 4.2 绑定缺失的一些属性。PR
- 构建不再输出 .cconb 二进制文件,统一改用 .bin 扩展名。PR
- 编译模拟器的命令支持生成 Spine 3.8 或者 Spine 4.2 的模拟器。PR
- 改进预览检查器: PR
- 全平台使用cconb格式替代ccon 格式, 减少文件数量, 提高加载速度: PR
- 为 XR 和 vendor-google 添加环境条件判断: PRPR
- 为 ModelBakeSettings 实现工具提示描述: PR
- 移除未使用的属性 UIRenderer._renderDataFlag: PR
- 优化 Rich Text 包体大小:PR
- 优化支付宝小游戏的适配层代码集成方式:PR
bug 修复
- 修复浮点数比较问题: PR
- 修复原生平台上大部分 UIOpacity 问题,优化本地透明度同步到原生端的逻辑: PR
- 修复 Spine 中因旋转使用不当导致的渲染异常: PR
- 修复 3D 粒子使用压缩纹理时的效果错误: PR
- 解决 Web 平台 Spine 运行时可能的内存溢出(OOM)问题: PR
- 修复 CI 中的 emsdk 缓存错误: PR
- 使预览缩放效果与场景保持一致: PR
- 修复 Box2D-JSB 中未绑定的 b2ChainShape::m_vertices 和 b2PolygonShape::m_vertices/m_normals 属性: PR
- 在 iOS 12.0 上回退 maxKnownFeatureSet: PR
- 修复组件移除后因未注销事件导致的内存泄漏: PR
- 修复 Android 平台因 getViewSize 调用导致的崩溃问题: PR
- 修复字节跳动平台 ‘onWindowResize’ 回调中获取过时 systemInfo 的问题: PR
- 修复瓦片渲染模式下精灵无法动态合批的问题: PR
- 更新微信模板中的 libVersion 值: PR
- 修复 HarmonyOS-Next 平台频繁隐藏/显示窗口时可能导致的崩溃问题: PR
- 预制体预览支持切换功能: PR
- 修复渲染 rt 纹理精灵无法合批绘制的问题: PR
- 为富文本添加 UITransform 组件依赖: PR
- 移除设置 SpriteFrame 时查询自动图集的代码: PR
- 修复实例化时忽略带有挂载子节点的节点副本的问题: PR
- 修复删除编辑场景中使用的 spine 资源可能导致 JS 异常的问题: PR
- 添加更严格的 renderdata 有效性检查代码: PR
- 修复原生平台上使用旧管线,启动的时候导致的一个内存泄露问题:PR
- 修复原生平台上使用 physx 物理后端,转换 C++ std::vector 和 std::vector 为 JS Array 的初始大小不对的问题:PR
- 修复新管线编译 release 包,开启 Profile 无法生效的问题:PR1, PR2,PR3
- 为 copy-pass.effect 移除不必要的 Global Uniforms:PR
- 修复 HarmonyOS Next 平台上,选用 ARK Runtime 导致的内存泄露问题:PR1, PR2
- 修复平行光组件 csmTransitionRange 属性的范围错误:PR
- 修复 GPU instancing 排序问题:PR
- 修复 Camera.convertToUINode 无法在 start 回调中生效的问题:PR
- 修复 Spine 4.2 TrackCompleteListener 不能收到回调,以及 Spine 3.8 TrackCompleteListener 不同动画只能回调一次的问题。由于 Spine 4.2 C++ 代码调整了spine.EventType 的枚举值,Spine 3.8 同步了 Spine 4.2 enum 对应的修改,导致 TS 层也需要调整,这个修改破坏了 spine.EventType 枚举数值的兼容性。如果项目中有直接使用
数字
判断 EventType 而不是使用枚举 spine.EventType.dispose/complete,那么需要做对应调整,建议不要直接使用数字
,避免后续带来兼容问题:PR - 修复 Xcode 16.3 导致的 iOS/macOS 平台上的编译报错问题:PR
- 修复 bullet wasm 漏绑定 CollisionShape_getLocalBoundingSphere 接口的问题:PR
- 修复 Box2D JSB 漏绑定 normalImpulses/tangentImpulses 属性的问题:PR
- 修复预加载 Texture2D 或 SpriteAtlas 失败的问题:PR
- 修复原生平台上在 schedule 回调中销毁带 sp.Skeleton 组件的节点导致的崩溃问题:PR
- 为 Renderer.setSharedMaterial 添加 forceUpdate 参数, 解决 3.8.6 引入的传递相同 material 对象不更新的问题:PR
- 修复 preload 预加载 Texture2D, Altas 资源失败的问题:PR
- 修复 spine 导出 jpeg 图片资源,原生平台上加载导致的崩溃问题:PR
- 修复原生平台上禁用启用 2D 粒子节点导致 C++ 层内存越界崩溃问题:PR
- 修复 Google Play API 没有代码提示的问题:PR,PR
- 修复 box2d-wasm/box2d-jsb 后端中 physics-contact.ts 的逻辑异常:PR
- 修复未勾选 DragonBones 模块,在模拟器中运行报错的问题:PR
- 修复 HarmonyOS Next 平台文件读取相关的问题:PR
- 修复 Spine setTrackEndListener 无法被正常回调的问题:PR
编辑器
新功能
- 新增了【用户反馈】面板,通过【菜单-帮助-反馈问题】 可以启动,有意见建议也可以在这边进行反馈
- 抖音平台支持引擎分离
- 构建支持动画文件的 cconb 的合并,可以减少动画文件数量和优化加载速度,可以在构建配置内开启
- 层级管理现在显示节点的时候,带有用户脚本的的节点会有图标显示
优化
- 新增"启动编辑器时从缓存中恢复数据库"的实验室选项,默认开启。项目第一次升级时选项默认无效,之后打开项目直接从缓存恢复内存数据不重新导入,保守可以优化 75% 左右的资源导入时间,项目越大效果越明显。开启后如遇到问题可以在论坛上反馈给我们,也可以暂时关闭选项绕过。
- 构建配置面板支持拖动配置属性显示宽度
- 优化资源管理器内查找 UUID 的使用功能,支持所有资源类型查询包括脚本之前的互相依赖
- 调整吸附与摄像机漫游快捷键提示逻辑
- 完善 Spine 与 预制预览功能
- 添加预制体预览开关到实验室
- 优化 2d 视图滚动速度效果
- 优化中心轴线条逻辑
- 调整 position gizmo 蓝框的 z 轴,让他优先被检测,减少误操作的可能性
- quick compile 编译模块自动剔除对应平台宏不支持的模块
bug 修复
- 修复 web 平台的 Bundle 包路径包含特殊符号时,勾选 md5 构建会出错
- 修复命令行构建 Bundle 可能出现 Invalid bundle options 错误后失败
- 修复编辑器偏好设置修改资源默认导入配置重启后失效
- 修复构建自动图集时加载资源可能报错
- 修复构建插件钩子函数内 result 参数的资源地址查询接口
- 修复构建自定义纹理压缩接口定义以及示例错误
- 修复自定义资源数据库插件重启后无法正常显示在资源管理器
- 修复构建过程中可能出现 operation not permitted 错误
- 兼容引擎部份对属性元素进行二次挂载导致节点无法正常获取的问题
- 修复 alt + 鼠标左键进入 Orbit 状态,释放了 alt 后鼠标抬起会触发选中对象的问题
- 修复模拟器引擎 TS 与 C++ Spine 版本不配套的问题
- 修复点击编辑器预览单步运行,导致场景视图表现错误的问题
- 修复编辑器内部预览时,会出现处理被删除的节点,导致报错的问题
- 修复拖动 material 设置 mesh 时,会出现mesh 的材质被赋空的问题
- 微调部分编辑器 UI 的组件
- 修复 bundle 重命名后,编辑器内部预览加载不到的问题
- 修复运行编辑器预览时,默认先打开一个空场景的问题
- 修复删除参考图的原图时,参考图无法操作的问题