0

我目前在我的车上与 Unity 中的车轮碰撞器作斗争。我尝试了不同的代码和汽车,甚至在 Unity 中制作了一辆简单的汽车。但没有什么像我想要的那样有效。如图所示,我的车轮一直在我的汽车中心搜索,并且车轮不会自行转动。

我的汽车控制器的图像:

我的车轮对撞机的图像:

我的车轮图片:

我的车轮在我的车中央的图像:

using UnityEngine;

public class CARController : MonoBehaviour
{

    public void GetInput()
    {
        m_horizontalInput = Input.GetAxis("Horizontal");
        m_verticalInput = Input.GetAxis("Vertical");
    }

    private void Steer()
    {
        m_steeringangle = maxSteeringAngle * m_horizontalInput;
        frontDriverW.steerAngle = m_steeringangle;
        frontpassengerW.steerAngle = m_steeringangle;
    }

    private void Accelerate()
    {
        frontDriverW.motorTorque = m_verticalInput * motorForce;
        frontpassengerW.motorTorque = m_verticalInput * motorForce;
    }

    private void UpdateWheelPoses()
    {
        UpdateWheelPose(frontDriverW, frontDriverT);
        UpdateWheelPose(frontpassengerW, frontpassengerT);
        UpdateWheelPose(rearDriverW, rearDriverT);
        UpdateWheelPose(rearPassengerW, rearpassengerT);
    }

    private void UpdateWheelPose(WheelCollider _collider, Transform _transform)
    {
        Vector3 _pos = _transform.position;
        Quaternion _quat = _transform.rotation;

        _collider.GetWorldPose(out _pos, out _quat);

        _transform.position = _pos;
        _transform.rotation = _quat;
    }

    private void FixedUpdate()
    {
        GetInput();
        Steer();
        Accelerate();
        UpdateWheelPoses();

    }

    private float m_horizontalInput;
    private float m_verticalInput;
    private float m_steeringangle;

    public WheelCollider frontDriverW, frontpassengerW;
    public WheelCollider rearDriverW, rearPassengerW;
    public Transform frontDriverT, frontpassengerT;
    public Transform rearDriverT, rearpassengerT;
    public float maxSteeringAngle = 30;
    public float motorForce = 50; 

}

上面是我的汽车引擎代码。

4

1 回答 1

0

当在编辑器的菜单选项下方使用枢轴和局部旋转时,车轮网格轴位于错误位置时,通常会发生这种情况。尝试创建一个圆柱体并将其定位在车轮所在的位置。然后删除它的渲染器和过滤器,并将圆柱体变换的实际轮子作为父级。在检查器中拖动圆柱体作为车轮变换

于 2019-12-29T08:16:12.130 回答