有没有办法得到碰撞的接触力?我试着用OnCollisionEnter()方法得到速度。但是它给出的是接触后的速度,这对我没有用。
OnCollisionEnter()
rmbxnbpk1#
当然!如果你查看Unity文档,有一个方便的变量叫做Collision.impulse。这是最近才在Unity 5.2中引入的,所以如果你还没有更新,请考虑这样做。(否则,你将被迫使用互联网上现在不推荐的解决方案之一。)根据文档,要获得施加的力,只需将此值除以最后一帧的Time.fixedDeltaTime(因为在物理学中,impulse = force * time):
Collision.impulse
Time.fixedDeltaTime
impulse = force * time
void OnCollisionEnter(Collision col) { Vector3 collisionForce = col.impulse / Time.fixedDeltaTime; // And now you can use it for your calculations! }
1条答案
按热度按时间rmbxnbpk1#
当然!如果你查看Unity文档,有一个方便的变量叫做
Collision.impulse
。这是最近才在Unity 5.2中引入的,所以如果你还没有更新,请考虑这样做。(否则,你将被迫使用互联网上现在不推荐的解决方案之一。)根据文档,要获得施加的力,只需将此值除以最后一帧的
Time.fixedDeltaTime
(因为在物理学中,impulse = force * time
):