在刚体之间访问法线 force/impulse

Acess normal force/impulse between rigid bodies

我正在 Unity 3d 中制作弹射器游戏。当我的弹射器的石头击中敌方城堡的墙壁时,或者当敌方城堡的塔楼一起倒塌时,我将需要刚体之间的力来计算伤害。相对速度是不够的,因为它没有考虑质量。将相对速度和质量相乘也无济于事,因为我需要知道接触点相对于物体质心的位置,以及它们的转动惯量。石头可能直接撞到墙上,也可能被反射。这个脉冲值一定存在于物理引擎的某个地方,因为它被用于物理引擎,但我找不到它。

我想要的示例代码:

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

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

为简单起见:

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

希望对你有所帮助