跳转到内容

v0.6.0

UI 系统重构

  • UI 布局计算从 TypeScript 迁移到 C++/WASM,性能显著提升
  • 新增 UI 组件:ProgressBar、Dropdown、Toggle 及快速创建模板
  • 重写 UI 框架架构,提取 walkParentChain 辅助函数简化层级遍历
  • 增强布局系统,正确处理混合锚点模式,修复 Slider 拖拽问题
  • 所有 UI 组件自动生成编辑器 Schema

ECS 核心增强

Transform 统一

  • LocalTransformWorldTransform 合并为单一 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_WEB stencil 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.py codegen,支持 vector 类型和双输出