我在Unity 3d中制作了一个弹射游戏。当我的弹射器中的石头撞到敌人城堡的墙壁时,或者当敌人城堡的塔楼崩溃时,我将需要刚体之间的力来计算损坏。相对速度是不够的,因为它没有考虑质量。将相对速度和质量相乘也无济于事,因为我需要知道接触点相对于质量体中心的位置及其转动惯量。石头可能会直接撞到墙上,或者反射出来。物理引擎中必须存在这个脉冲值,因为它在物理引擎中使用,但我无法在任何地方找到它。
我想要的示例代码:
void OnCollisionEnter(Collider other){
float force = other.relativeForce;
if (force > breakLimit){
Destroy(gameObject);
Instantiate(Debri, transform.position, transform.rotation);
}
}
答案 0 :(得分:1)
您可能需要了解一些物理方程式或原理: 即 1/2 mv ^ 2 你的石头的动能。
简化:
<Kinetic energy before collision> = <Kinetic energy after collision> + energy accepted by the wall.
希望它会对你有所帮助。