碰撞体定义刚体的物理边界。要允许发生碰撞,必须将碰撞体与刚体一起添加到游戏对象。
如果一个刚体与另一个刚体碰撞,则物理引擎仅在两个游戏对象都附加了碰撞体时才计算碰撞。如果一个游戏对象具有刚体但没有碰撞体,它将穿过其他游戏对象,并且 Unity 不会将其包含在碰撞计算中。
碰撞中每个刚体的相对质量决定了它们相互碰撞时的响应情况。
请参阅碰撞以了解更多信息。
PhysX 物理系统要求放置在非运动刚体上的任何碰撞体都是凸面而不是凹面。Unity 中的所有原始形状都是凸面。但是,Unity 默认会考虑网格碰撞体凹面。
如果将默认网格碰撞体应用于非运动刚体,Unity 会在运行时抛出错误。为了确保非运动刚体接受基于物理的力,需要指示 Unity 使网格碰撞体凸起。为此,请启用网格碰撞体的 Convex 属性。启用 Convex 后,Unity 会根据关联的网格自动计算凸面碰撞体形状(称为外壳)。但是,由于网格的凸面外壳只是对原始形状的近似估算,因此可能导致模拟不准确。
为了进行更准确的碰撞模拟,可以使用以下方法之一:
如果刚体是运动刚体(即,它不接收基于物理的力),则可以向其施加任何碰撞体。