unity 碰撞检测的四种检测模式

四种检测模式

  • Discrete:离散检测
    通过在物理间隔时间中检测碰撞来工作
    对场景中的所有其他碰撞体使用离散碰撞检测,其他碰撞体在测试碰撞时会使用离散检测。

用于正常碰撞(默认值)
缺点: 快速移动 的物体可能会错过碰撞检测,可通过减少物理计算间隔时间,但会影响性能

  • Continuous:连续检测
    通过collider线性向前移动到下一帧的投影点来实现检测,就像一个boxcase检测
    这种 模式非常耗费性能

对动态碰撞体(具有刚体)使用离散碰撞检测

对静态碰撞体(没有刚体)使用连续碰撞检测

设置为连续动态的刚体,将在测试与该刚体的碰撞时使用连续碰撞检测(物理性能消耗较大,物体运动缓慢时请设置为 Discrete)

其他刚体将使用离散碰撞检测

  • Continuous Dynamic:连续动态检测
    非常耗费性能,只有当需要多个高速物体之间的精准碰撞时才使用
    对设置为连续和连续动态碰撞的对象使用连续碰撞检测

对静态碰撞体(没有刚体)使用连续碰撞检测

对其他碰撞体使用离散碰撞检测

用于快速移动的对象

  • Continuous Speculative:连续推测检测
    通过在当前对象周围画一个边界框来计算碰撞,会更加物体的线性运动和角度运动来推测未来的位置。

对刚体和碰撞体使用推测性连续碰撞检测

通常比连续碰撞检测的成本更低
缺点:会有虚假碰撞的情况,也就是两个快速移动的物体没有接触的情况下也发生了碰撞

总结:四种检测模式的选择

1.如果可以的话,尽量使用Discrete
2.如果物体有穿透或有快速的角度运动选择Speculative
3.如果有虚假碰撞的情况或者还是有穿透选择Continuous
4.如果需要多个高速移动的Collider,选择Continuous Dynamic,注意限制数量

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>