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。
目前我正在制作一款赛车游戏。
我用 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。