我目前在我的车上与 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;
}
上面是我的汽车引擎代码。