unity碰撞检测

浅谈Unity-Rigidbody碰撞穿透

若如初见. 提交于 2020-03-22 12:42:28
首先,说说碰撞的条件:1.rigidbody(刚体),一般用在主动移动的物体上,比如角色。2.collider,碰撞器,一般用于受力物体上,比如障碍块。 物理的碰撞当然是基于物理检测计算,而这个计算是消耗cpu和gpu的,那么,碰撞穿透是什么鬼? 发生概率即触发方式: 1.刚体速度足够快,被撞物体的collider足够薄。 2.刚体速度在一定的v,被撞物体也在一定的速度v(被撞物体可移动)。 3.暂时未发现的其他情况。 在分析这两种(3种)情况之前,先了解下一个刚体(rigidbody)属性参数: Collision Detection(碰撞检测): 它有三种选项:Discrete(离散),Continuous(连续),Continuous Dynamic(动态连续),我们参考下官方的解释: 该属性用于控制避免高速运动的游戏对象穿过其他的对象而未发生碰撞,有三项可供选择 Discrete:离散碰撞器。 该模式与场景中其他的所有碰撞体进行碰撞检测 。该项为默认值。 Continuous:连续碰撞检测。该模式用于检测与动态碰撞体(带有Rididbody)的碰撞,使用连续碰撞检测模式来检测与网格碰撞体(不带ridigbody)碰撞。(添加一句原文翻译漏了),Rigidbody设置为连续动态碰撞检测模式将使用连续碰撞来检测。其他刚体会采用离散碰撞模式