- Home /
Question by
Wenon · May 01, 2018 at 08:47 AM ·
anglewheelcolliderturn
gentle turning of the car
Hello, I cant figure out how to calculate angle for wheels to make car turning smooth. Arleady I have somethnink like this:
//Bus or car:
if (car.VehicleTyp == 2)
{
angletimes = 30;
}
else
{
angletimes = 20;
}
//calculate angle to next path:
Vector3 targetDir = path.transform.position - transform.position;
Vector3 forward = transform.forward;
targetDir.y = forward.y = 0;
float angletemp = Vector3.Angle(targetDir, forward);
Vector3 cross = Vector3.Cross(targetDir, forward);
if (cross.y > 0)
{
angletemp = -angletemp;
}
//making turning bit smoother;
if (angletemp > angle)
{
angle = angle + angletimes * Time.deltaTime;
}
if (angletemp < angle)
{
angle = angle - angletimes* Time.deltaTime;
}
if ((angletemp > 0 && angle < 0) || (angletemp < 0 && angle > 0))
{
angle = 0;
}
if (angle > car.MaxAngleOfSteer)
{
angle = car.MaxAngleOfSteer;
}
if (angle < -car.MaxAngleOfSteer)
{
angle = -car.MaxAngleOfSteer;
}
car.Angle = angle;
And it act like this:
But on long turns this is very unnatural. How can I make car turning like this but that it would also be made on sharper turns without delay with the possibility of maximum wheel turning?
Comment