汽车的移动和转向
我们知道,汽车的前进后退是变速运动。按w,汽车开始加速,到最大速度后保持匀速,松开w,汽车受到阻力加速。如果按s减速,则以更大的加速度减速。后退反之。
按A/D时前轮偏转。只有前进后退时,转弯会使汽车偏转。需要注意的是前轮偏转的角度也是float,但是A/D只有是否按下,是bool,比真实汽车少了一些自由度。一般只能控制按下A/D的时间控制前轮偏转角度。要么用鼠标左右移动控制,但是大多数游戏都不是这么做的。
这和人物、坦克的移动旋转都不一样。
Wheel Collider
Wheel Collider下的参数很多。只看最关键的。
motorTorque
首先,motorTorque用来驱动车轮前进后退。可以用来刹车但是官方不推荐。
WheelCollider-motorTorque - Unity 脚本 API
brakeTorque
刹车有brakeTorque。
WheelCollider-brakeTorque - Unity 脚本 API
steerAngle
steerAngle控制前轮的偏转。并不旋转wheelCollider依附的对象,只对物理系统起作用,并且会旋转Giamos显示的图标。
WheelCollider-steerAngle - Unity 脚本 API
GetWorldPose()
要让轮子模型偏转、运动中旋转,需要使用GetWorldPose()得到轮子的世界位置和旋转,写入给轮子模型。
WheelCollider-GetWorldPose - Unity 脚本 API
Quaternion q;
Vector3 p;
wheelCollider.GetWorldPose(out p, out q);
wheel.position = p;
wheel.rotation = q;