v0.6.0
UI 系统重构
- UI 布局计算从 TypeScript 迁移到 C++/WASM,性能显著提升
- 新增 UI 组件:ProgressBar、Dropdown、Toggle 及快速创建模板
- 重写 UI 框架架构,提取
walkParentChain辅助函数简化层级遍历 - 增强布局系统,正确处理混合锚点模式,修复 Slider 拖拽问题
- 所有 UI 组件自动生成编辑器 Schema
ECS 核心增强
Transform 统一
- 将
LocalTransform和WorldTransform合并为单一Transform组件 - 简化 API,不再需要在两种 Transform 类型之间切换
Generational Handle
- 使用 flat vector pool 和 generational entity handle 重建 ECS Registry
- 消除过期实体引用 bug,提升缓存局部性
- 大量实体场景下迭代性能显著提升
变更检测与事件系统
- 新增 ECS 变更检测系统,可追踪组件修改
- 新增事件系统,支持实体间和系统间的解耦通信
实时编辑播放模式
- 游戏运行期间可完全实时编辑实体属性
- 编辑器中的修改实时反映到运行中的游戏
- Scene/Game 共享视图使用离屏 WebGL Canvas(不再使用 iframe 复制)
- 用轻量级内联 renderer sync 替代
RuntimeSyncService
资产导入管线
- 全新资产导入系统,支持按平台 override
- 可定义平台特定的资产处理规则(如微信和 Playable 使用不同纹理压缩)
- 集成到现有构建管线
多窗口支持
- 任意编辑器面板可拆分为独立 OS 窗口
- 独立窗口生命周期,完整保留面板功能
- 面板可重新停靠回主窗口
编辑器改进
- 复合实体创建(如 Button、Slider)后自动选中 Hierarchy 中的根实体
- Inspector 中每个组件支持启用/禁用开关
- Scene View 设置中增加实时预览切换
- 修复 Scene View 缩放到光标的符号错误和 overlay 缩放
- 移除底部 Dock 面板中的 Addressable Groups
- 改进 Dropdown 占位符渲染和 Inspector Schema 处理
性能
- ECS Registry:flat vector pool 替代 sparse set,视图迭代速度提升约 2 倍
- TransformSystem:两次遍历融合为单次,增加 nameLen 边界检查
- Root Transform:根实体跳过矩阵乘法的快速路径
- GL Flush:移除渲染 flush 中的冗余 GL 状态调用
SDK 和运行时
- 增强
World.query()API,改善易用性 App.tick()生命周期改进和场景资产生命周期管理- 组件注册表整合,场景加载 DRY 化
- 修复系统执行顺序,Toggle 性能从 O(n²) 优化到 O(n)
平台修复
- 微信小游戏:使用
wx.getSystemInfoSync获取正确的安全区域 insets - 可玩广告:修复构建中的实体引用警告和 Prefab 实例化问题
- 原生平台:为原生构建兼容性添加
ES_PLATFORM_WEBstencil GL 调用保护
Bug 修复
- 修复 C++ Entity ID 回收导致创建实体后文本消失
- 修复 UIRect 混合锚点模式布局
- 修复 Slider 最小值时 fill anchors 归零导致 UIRect 尺寸为 0
- 修复 Slider fill 位置和 ProgressBar 布局同步
- 修复 ProgressBar fill 定位和 UIRect 移动 Gizmo
- 修复触摸 ID 追踪和 Spine 缓存 key 碰撞
- 修复 Dropdown 占位符、颜色 NaN 值和纹理 handle 守卫
- 修复渲染器正确性问题,减少 draw call 开销
其他
- 升级 spine-runtimes 到 4.2.104
- 新增 SDK 集成测试,覆盖 UI、Layout、Slider 和 App Tick
- 更新
eht.pycodegen,支持 vector 类型和双输出