unity3d 获取碰撞接触力

oalqel3c  于 2023-03-23  发布在  其他
关注(0)|答案(1)|浏览(197)

有没有办法得到碰撞的接触力?我试着用OnCollisionEnter()方法得到速度。但是它给出的是接触后的速度,这对我没有用。

rmbxnbpk

rmbxnbpk1#

当然!如果你查看Unity文档,有一个方便的变量叫做Collision.impulse。这是最近才在Unity 5.2中引入的,所以如果你还没有更新,请考虑这样做。(否则,你将被迫使用互联网上现在不推荐的解决方案之一。)
根据文档,要获得施加的力,只需将此值除以最后一帧的Time.fixedDeltaTime(因为在物理学中,impulse = force * time):

void OnCollisionEnter(Collision col) {
    Vector3 collisionForce = col.impulse / Time.fixedDeltaTime;
    // And now you can use it for your calculations!
}

相关问题