A simple car was created with Unity.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class BackHoeController : MonoBehaviour {
public List<AxleInfo> axleInfos;
public float maxMotorTorque;
public float maxSteeringAngle;
public void ApplyLocalPositionToVisuals(WheelCollider collider)
{
if (collider.transform.childCount == 0) {
return;
}
Transform visualWheel = collider.transform.GetChild (0);
Vector3 position;
Quaternion rotation;
collider.GetWorldPose (out position, out rotation);
visualWheel.transform.position = position;
visualWheel.transform.rotation = rotation * Quaternion.Euler (0f, 0f, 90f);
}
void Start () {
Debug.Log ("CarStart");
}
void Update () {
}
public void FixedUpdate()
{
float motor = maxMotorTorque * Input.GetAxis("Vertical");
float steering = maxSteeringAngle * Input.GetAxis("Horizontal");
Debug.Log ("CarFUpdate motor=" + motor + "steering=" + steering);
foreach (AxleInfo axleInfo in axleInfos) {
if (axleInfo.steering) {
axleInfo.leftWheel.steerAngle = steering;
axleInfo.rightWheel.steerAngle = steering;
}
if (axleInfo.motor) {
axleInfo.leftWheel.motorTorque = motor;
axleInfo.rightWheel.motorTorque = motor;
}
ApplyLocalPositionToVisuals(axleInfo.leftWheel);
ApplyLocalPositionToVisuals(axleInfo.rightWheel);
}
}
}
[System.Serializable]
public class AxleInfo {
public WheelCollider leftWheel;
public WheelCollider rightWheel;
public bool motor;
public bool steering;
}
However, I am having trouble with it, because when I operate it right after it starts, it only moves a little, and when I operate it some time after it starts, it doesn’t move at all.
Please let me know what information you need and I will post it.
Thank you.