v0.8.2
ShapeRenderer 组件
新增内置组件,使用 GPU 加速的有符号距离场绘制 2D 形状。详见 形状渲染器指南。
- 三种形状类型 — 圆形、胶囊和圆角矩形,可配置尺寸、颜色、圆角半径和渲染层级
- SDF 渲染 — 通过片段着色器距离函数实现任意缩放下的抗锯齿边缘
- 编辑器支持 — 形状类型下拉框、颜色拾取器和 Scene View 实时预览
新碰撞器类型
物理系统新增三种碰撞器形状,各有独立文档:
- SegmentCollider — 线段碰撞器,适用于薄墙和单向平台
- PolygonCollider — 最多 8 个顶点的凸多边形碰撞器
- ChainCollider — 线段链碰撞器,适用于地形和复杂静态边界
所有碰撞器支持完整属性集,包括密度、摩擦力、弹性、传感器模式和碰撞层分配。编辑器 Inspector 和调试绘制均已支持。
碰撞层系统
16 层位掩码碰撞过滤系统,带编辑器集成。详见碰撞体 — 碰撞过滤。
- 命名层 — 在项目设置中定义最多 16 个碰撞层(如 “Player”、“Enemy”、“Ground”)
- 碰撞矩阵 — Settings → Physics 中的可视化矩阵控件,配置哪些层之间可以交互
- Inspector 下拉框 — 碰撞体的
categoryBits显示为命名层选择器,而非原始位掩码 - 项目同步 — 层名称和掩码保存到项目配置中,团队共享
接触求解器参数
Box2D 接触求解器参数现已在项目设置中暴露:
| 参数 | 默认值 | 说明 |
|---|---|---|
| Contact Hertz | 30 | 接触刚度(周期/秒) |
| Contact Damping Ratio | 10 | 接触弹性阻尼 |
| Contact Speed | 3 | 最大重叠修正速度(米/秒) |
UI 交互改进
- 默认着色 — 没有显式
ColorTransition的按钮和开关现在自动应用基于状态的着色(悬停 1.15 倍、按下 0.75 倍、禁用 0.5 倍亮度) - 开关颜色 — Toggle 新增
onColor和offColor属性,无需完整 transition 定义即可自定义颜色 - 拖拽 UIRect 支持 —
Draggable现在支持锚点布局的 UI 元素,通过调整布局偏移量而非 Transform 位置 - 滑块手柄居中 — 滑块手柄现在在垂直于滑动方向的轴上自动居中
统计叠加面板
- 系统计时现在显示为 500ms 窗口内的平均 / 峰值,而非每帧值,在保持稳定可读性的同时不丢失尖峰信息
增强的设置对话框
项目设置对话框已重新设计:
- 搜索 — 按名称、描述或标签筛选设置
- 可折叠分组 — 相关设置组织为可折叠区域
- 修改指示器 — 导航项上的圆点标记显示非默认值
- 分区重置 — 将某个分区的所有设置恢复为默认值
- 新分区 — Rendering(精灵默认值、像素单位比)、Asset Loading(超时、冷却)和 Network(HTTP 代理)
- 条件可见性 — 仅在特定模式下适用的设置(如 Canvas Match W/H)自动显示/隐藏
性能优化
- 材质批处理 — 共享相同材质的精灵现在合并渲染
- 着色器加载 — 着色器使用内嵌
.esshader格式,替代内联字符串 - ECS 优化 — 改进视图迭代、排序和渲染管线性能
示例项目
引擎现在附带 16 个示例项目,覆盖核心功能:精灵、动画、物理、UI 控件、音频、输入、瓦片地图、粒子、补间、后处理、存储、自定义绘制、材质等。可在启动器的示例面板中浏览。
Bug 修复
- 修复退出播放模式后 Image 组件消失的问题
- 修复切换项目后预览服务器提供旧项目内容
- 修复编辑器播放模式下音频 URL 解析
- 修复启动系统刷新时机和编辑器非播放模式下的动画
- 修复 anim-clip UUID 不匹配并在编辑器中添加首帧预览
- 修复 jsdom 环境下编辑器测试失败