目前我正在制作赛车游戏。
我用Transform.translate
课程移动我的车。
现在,我想要的汽车不是为了相互移动。
我将碰撞器和RigidBody附加到我的玩家车上并且它正在工作。
但我的问题是每次我的CPU车和玩家车相遇时,我的玩家车显示出不切实际的行为,比如走出屏幕或扔掉。
我知道这是物理引擎行为的一部分,但是有没有办法让RigidBody只做一个工作并使对象不会相互移动而不添加其他物理行为?
有什么想法吗?
答案 0 :(得分:0)
只有几个问题:
1 。您不要使用transform.translate
移动Rigidbody。当你这样做时,对撞机将通过其他碰撞器。
您使用Rigidbody.AddForce
,Rigidbody.velocity
和Rigidbody.MovePosition
移动Rigidbody。通过使用这些方法移动Rigidbody,碰撞应该正常运行。
2 。你甚至不应该移动汽车的Rigidbody
。
使用WheelCollider
。有许多关于如何在互联网上设置它们的在线tutorials,但Unity的文档也很好。
WheelCollider.motorTorque
用于向前或向后移动汽车。
WheelCollider.steerAngle
用于驾驶汽车。
WheelCollider.brakeTorque
用于制动汽车。
如果您需要进一步的帮助,可以找到功能齐全的WheelCollider
样本here。