跳转到内容

多边形碰撞器

PolygonCollider 定义最多 8 个顶点的凸多边形形状。适用于无法用盒形、圆形或胶囊形表示的自定义碰撞形状。

属性

属性类型默认值说明
verticesVec2[][]多边形顶点,以物理单位计(局部空间)。最多 8 个顶点
radiusnumber0.0多边形外围的蒙皮半径。大于 0 时创建圆角多边形
densitynumber1.0质量密度
frictionnumber0.6表面摩擦力
restitutionnumber0.0弹性
isSensorbooleanfalse触发区域,无物理响应
categoryBitsnumber1碰撞过滤类别位

场景视图中的顶点编辑

在编辑器中选中带有 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 实体,挂载到同一父实体下。

参见