1

好的,这是官方网站上最难的 Unity3D 问题:


如果你在 Unity 中有两个对象,也许用手指拖动 A,当你与 B 碰撞时,

如今,Unity 明智地为您提供了 PhysX 决定在碰撞中应用于该项目的力。只需使用OnCollisionStay...

Rigidbody rb;
void OnCollisionStay(Collision col)
  {
  if (rb.isKinematic) return;

  if ( col.impulse.x != 0f || col.impulse.y != 0f )
    Debug.Log(gameObject.name +" bashed, PhysX doing this .. "
      + col.impulse.x.ToString("f4") +" "
      + col.impulse.y.ToString("f4") +" "
      + col.impulse.z.ToString("f4")    );
  }

查看文档http://docs.unity3d.com/ScriptReference/Collision.html

值得的是.impulse

冲量 施加到此接触对以解决碰撞的总冲量。

伟大的。但。不幸的是,脉冲是在哪个坐标系中给出的,这完全是个谜。

试试看。真是疯了。它是相对于两个碰撞对象之间的方向(即在transformand之间col.transform)还是在某个局部空间中(哪个?)它可能是相对于.relativeVelocity向量吗?

这到底是什么?这是愚蠢的。试试看。

看在上帝的份上,我希望在世界空间中简单地施加力量。

文档没有任何信息,也没有人在讨论它。

4

0 回答 0