Unity 中没有额外物理行为的刚体

RigidBodies without Extra Physics Behavior in Unity

目前我正在制作一款赛车游戏。

我用 Transform.translate class.

移动我的车

现在我希望我的汽车不会相互穿行。

我将对撞机和 RigidBody 附加到我的播放器车上,它正在工作。

但我的问题是,每次我的 CPU 汽车和玩家汽车相遇时,我的玩家汽车都会出现不切实际的行为,例如移出屏幕或扔掉。

我知道这是物理引擎行为的一部分,但有没有办法让 RigidBody 只做一项工作,让物体不相互移动,不添加其他物理行为?

有什么想法吗?

只有几个问题:

1。你不用transform.translate移动刚体。当您这样做时,碰撞器将经过其他碰撞器。

你用 Rigidbody.AddForce, Rigidbody.velocity and Rigidbody.MovePosition 移动刚体。通过使用这些方法移动刚体,碰撞应该正常运行。

2。你连车的Rigidbody都不该动。

使用 WheelCollider. There are many online tutorials 了解如何在互联网上设置它们,但 Unity 的文档也很好。

WheelCollider.motorTorque用于让小车前进或后退

WheelCollider.steerAngle 用于驾驶汽车。

WheelCollider.brakeTorque是用来刹车的

如果您需要进一步的帮助,您可以找到完全可用的 WheelCollider 示例 here