四种检测模式
- Discrete:离散检测
通过在物理间隔时间中检测碰撞来工作
对场景中的所有其他碰撞体使用离散碰撞检测,其他碰撞体在测试碰撞时会使用离散检测。
用于正常碰撞(默认值)
缺点: 快速移动 的物体可能会错过碰撞检测,可通过减少物理计算间隔时间,但会影响性能
- Continuous:连续检测
通过collider线性向前移动到下一帧的投影点来实现检测,就像一个boxcase检测
这种 模式非常耗费性能
对动态碰撞体(具有刚体)使用离散碰撞检测
对静态碰撞体(没有刚体)使用连续碰撞检测
设置为连续动态的刚体,将在测试与该刚体的碰撞时使用连续碰撞检测(物理性能消耗较大,物体运动缓慢时请设置为 Discrete)
其他刚体将使用离散碰撞检测
- Continuous Dynamic:连续动态检测
非常耗费性能,只有当需要多个高速物体之间的精准碰撞时才使用
对设置为连续和连续动态碰撞的对象使用连续碰撞检测
对静态碰撞体(没有刚体)使用连续碰撞检测
对其他碰撞体使用离散碰撞检测
用于快速移动的对象
- Continuous Speculative:连续推测检测
通过在当前对象周围画一个边界框来计算碰撞,会更加物体的线性运动和角度运动来推测未来的位置。
对刚体和碰撞体使用推测性连续碰撞检测
通常比连续碰撞检测的成本更低
缺点:会有虚假碰撞的情况,也就是两个快速移动的物体没有接触的情况下也发生了碰撞
总结:四种检测模式的选择
1.如果可以的话,尽量使用Discrete
2.如果物体有穿透或有快速的角度运动选择Speculative
3.如果有虚假碰撞的情况或者还是有穿透选择Continuous
4.如果需要多个高速移动的Collider,选择Continuous Dynamic,注意限制数量