胶囊碰撞体是一个内置的 3D 胶囊形状碰撞体,由两个半球与一个圆柱体连接在一起组成。它可以用于具有圆柱形状的应用程序内物体,也可以用作场景中玩家和非玩家角色的碰撞体。
由于胶囊碰撞体没有角,所以它们也可用于柔化关卡几何体中尖锐角和边缘的碰撞区域,使玩家移动更加平滑。
胶囊碰撞体的资源需求相对较低。
| 属性 | 描述 |
|---|---|
| Edit Collider | 启用 Edit Collider 可在场景视图中显示碰撞体的接触点。可以单击并拖动这些接触点来修改碰撞体的大小和形状。也可以使用 Center、Radius 和 Height 属性。 |
| Is Trigger | 启用 Is Trigger 可使用碰撞体作为事件的触发器。启用 Is Trigger 后,其他碰撞体会穿过此碰撞体,并触发消息 OnTriggerEnter、OnTriggerStay 和 OnTriggerExit。 |
| Provides Contacts | 启用 Provides Contacts 可始终为此碰撞体生成接触信息。通常,碰撞体仅在有接触数据接收对象时才会生成接触数据;在这种情况下,触发消息 OnCollisionEnter、OnCollisionStay 或 OnCollisionExit。启用 Provides Contacts 后,碰撞体会始终为物理系统生成接触数据。接触生成是资源密集型操作,因此默认情况下禁用 Provides Contacts。 |
| Material | 添加确定此碰撞体的摩擦力和弹性的 Physic Material 组件。 |
| Center | 定义碰撞体在游戏对象本地空间中每个轴上的位置。默认情况下,此设置为 (0, 0, 0)。 |
| Radius | 定义碰撞体自其中心的半径。可以独立于 Height 调整 Radius。默认情况下,此设置为 0.5。 |
| Height | 使用 Unity 单位定义碰撞体的总高度。可以独立于 Radius 调整 Height。默认情况下,此设置为 2。 |
| Direction | 定义胶囊体在对象本地空间中纵向方向的轴。 |
层覆盖部分提供的属性允许您覆盖整个项目范围内此碰撞体的基于层的碰撞检测设置。
| 属性 | 描述 |
|---|---|
| Layer Override Priority | 定义此碰撞体覆盖的优先级。当两个碰撞体的覆盖冲突时,将采用具有较高优先级值的碰撞体的设置。 例如,如果层覆盖优先级为 1 的碰撞体与层覆盖优先级为 2 的碰撞体发生碰撞,物理系统将采用层覆盖优先级 为 2 的碰撞体的设置。 |
| Include Layers | 选择要包含在与此碰撞体的碰撞的层。 |
| Exclude Layers | 选择要排除在与此碰撞体的碰撞的层。 |