碰撞当物理引擎检测到两个游戏对象的碰撞器发生接触或重叠时,就会发生碰撞,前提是至少一个游戏对象具有刚体组件且处于运动状态。 更多信息
在 术语表 中查看 检测定义了物理体(刚体或关节体)使用哪种算法来检测碰撞。不同的算法提供了不同的准确性级别,但更准确的算法需要更多计算资源。
有三种可用的算法,由四种 碰撞检测Unity 执行的一个自动过程,用于确定具有刚体和碰撞器组件的移动游戏对象是否与其他碰撞器发生接触。 更多信息
在 术语表 中查看 模式表示
碰撞检测模式 | 算法 | 适用于 | 不适用于 |
---|---|---|---|
离散 | 离散 | - 缓慢的碰撞。 | - 快速的碰撞。 |
连续推测 | 推测 CCD | - 快速的碰撞。 | - 一些需要特别高精度级别的快速碰撞。 |
连续 | 扫描 CCD | - 需要高精度级别的快速线性碰撞。 - 仅与静态碰撞器发生碰撞的物理体。 |
- 由物理体旋转导致的碰撞。 - 与移动碰撞器发生碰撞的物理体。 |
连续动态 | 扫描 CCD | - 需要高精度级别的快速线性碰撞。 - 与移动碰撞器发生碰撞的物理体。 |
- 由物理体旋转导致的碰撞。 |
以下决策流程可能为选择碰撞检测类型提供起点。它从计算量最少的模式开始,并逐渐过渡到计算量最大的模式。
在某些情况下,您可能会发现物理性能依赖于碰撞检测模式和物理时间步长频率的组合。同时尝试这两种方法并分析结果,为您的项目找到合适的解决方案。
要选择算法,请通过以下方法之一设置物理体的碰撞检测属性