Gök*_*mir 4 c# unity-game-engine game-physics
有没有办法获得碰撞的接触力?我试图通过获取OnCollisionEnter()方法中的速度来做到这一点。但它在接触后提供速度,这对我没有用。
绝对地!如果您查看 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!
}
Run Code Online (Sandbox Code Playgroud)