车轮转动不正常,如何修理?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了车轮转动不正常,如何修理?相关的知识,希望对你有一定的参考价值。

我有一个非常基本的汽车模型。到目前为止,我已经设法让车轮以两种方式之一旋转:

  • 转动时,车轮在局部Z轴上旋转
  • 当车轮向前或向后行驶时,车轮在局部Y轴上旋转

他们都工作得很好,但我不能让他们两个同时工作。我绝对难过,它开始惹我生气!我也一直在尝试关注此视频(https://www.youtube.com/watch?v=0jvJ2FMvbBs)并出现以下错误:

  • 无法修改'UnityEngine.Transform.rotation'的值类型返回。考虑将值存储在临时变量中。

有人可以看看我的代码并告诉我我做错了什么吗?提前致谢。

码:

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;
}
答案

Transform的“rotation”变量是Quaternion,因此您在Update的第二行代码中尝试执行的操作将打破旋转。相反,您将不得不再次使用transform.Rotate并从变换的局部欧拉角度访问旋转的z值。

wheel[0].transform.Rotate(0, wheel[0].GetComponent<WheelCollider>().steerAngle - wheel[0].transform.localEulerAngles.z, 0);

以上是关于车轮转动不正常,如何修理?的主要内容,如果未能解决你的问题,请参考以下文章

轮盘转动[关闭]

unity 制作小汽车跑起来

将车轮旋转到特定点

hp m1005 no print cartridge 怎样修理

开车蹭大石

一次修理安装家用上网电脑的过程