我有一个非常基本的汽车模型。到目前为止,我已经设法让车轮以两种方式之一旋转:
他们都工作正常,但我不能让他们两个同时工作。我绝对难过,它开始惹我生气!我也一直在尝试关注此视频(https://www.youtube.com/watch?v=0jvJ2FMvbBs)并出现以下错误:
有人可以查看我的代码并告诉我我做错了什么吗?提前谢谢。
代码:
public Wheels[] wheel;
public float enginePower = 20f;
public float turnPower = 20f;
void FixedUpdate () {
float torque = Input.GetAxis("Vertical") * enginePower;
float turnSpeed = Input.GetAxis("Horizontal") * turnPower;
//4 Wheel Drive
wheel[0].Move(torque);
wheel[1].Move(torque);
wheel[2].Move(torque);
wheel[3].Move(torque);
//Front Wheel Steering
wheel[0].Turn(turnSpeed);
wheel[1].Turn(turnSpeed);
}
void Update () {
wheel[0].transform.Rotate(0, 0, wheel[0].GetComponent<WheelCollider>().rpm / 60 * 360 * Time.deltaTime);
//Only one wheel is shown for simplicity
wheel[0].transform.rotation.y = wheel[0].GetComponent<WheelCollider>().steerAngle - wheel[0].transform.rotation.z;
}
答案 0 :(得分:0)
Transform的“rotation”变量是Quaternion
,因此您在Update的第二行代码中尝试执行的操作将打破旋转。相反,您将不得不再次使用transform.Rotate
并从变换的局部欧拉角度访问旋转的z值。
wheel[0].transform.Rotate(0, wheel[0].GetComponent<WheelCollider>().steerAngle - wheel[0].transform.localEulerAngles.z, 0);