多边形碰撞器
PolygonCollider 定义最多 8 个顶点的凸多边形形状。适用于无法用盒形、圆形或胶囊形表示的自定义碰撞形状。
属性
| 属性 | 类型 | 默认值 | 说明 |
|---|---|---|---|
vertices | Vec2[] | [] | 多边形顶点,以物理单位计(局部空间)。最多 8 个顶点 |
radius | number | 0.0 | 多边形外围的蒙皮半径。大于 0 时创建圆角多边形 |
density | number | 1.0 | 质量密度 |
friction | number | 0.6 | 表面摩擦力 |
restitution | number | 0.0 | 弹性 |
isSensor | boolean | false | 触发区域,无物理响应 |
categoryBits | number | 1 | 碰撞过滤类别位 |
场景视图中的顶点编辑
在编辑器中选中带有 PolygonCollider 的实体时,场景视图中会显示顶点控制点:
- 拖拽控制点移动顶点
- 双击边添加新顶点(在 8 顶点限制以内时)
- 右键点击控制点删除顶点
用法
commands.spawn( Transform.default(), RigidBody.with({ bodyType: 2 }), PolygonCollider.with({ vertices: [ { x: -0.5, y: -0.5 }, { x: 0.5, y: -0.5 }, { x: 0.3, y: 0.5 }, { x: -0.3, y: 0.5 }, ], }),);提示
- 保持多边形简单。顶点越少性能越好。
radius属性在多边形外围添加蒙皮,可减少堆叠场景中的碰撞抖动。- 对于凹形状,将其拆分为多个凸
PolygonCollider实体,挂载到同一父实体下。