在刚体之间获得法向力/脉冲

时间:2015-02-09 23:34:45

标签: unity3d game-physics

我在Unity 3d中制作了一个弹射游戏。当我的弹射器中的石头撞到敌人城堡的墙壁时,或者当敌人城堡的塔楼崩溃时,我将需要刚体之间的力来计算损坏。相对速度是不够的,因为它没有考虑质量。将相对速度和质量相乘也无济于事,因为我需要知道接触点相对于质量体中心的位置及其转动惯量。石头可能会直接撞到墙上,或者反射出来。物理引擎中必须存在这个脉冲值,因为它在物理引擎中使用,但我无法在任何地方找到它。

我想要的示例代码:

void OnCollisionEnter(Collider other){
    float force = other.relativeForce;
    if (force > breakLimit){
        Destroy(gameObject);
        Instantiate(Debri, transform.position, transform.rotation);
    }
}

1 个答案:

答案 0 :(得分:1)

您可能需要了解一些物理方程式或原理: 即 1/2 mv ^ 2 你的石头的动能。

简化:

<Kinetic energy before collision> = <Kinetic energy after collision> + energy accepted by the wall.

希望它会对你有所帮助。