Поворот колес машины (Wheelcolider.steerAngle)
Нужно чтобы колеса поворачивались по оси Y в направлении цели. Сейчас имею такой костыль:
public Transform target;
public Transform rotator;// Это куб перед машиной
void Update
{
if (Vector3.Distance(transform.position, targetForAI.position) > 1f)
{
CancelInvoke("DecelerateCar");
deceleratingCar = false;
GoForward();
rotator.LookAt(targetForAI);
Turn(Mathf.Rad2Deg* rotator.localRotation.y);
}
}
public void Turn(float angle)
{
var steeringAngle = Math.Clamp(angle,-45,45);
Debug.Log(angle);
frontLeftCollider.steerAngle = Mathf.Lerp(frontLeftCollider.steerAngle, steeringAngle, steeringSpeed);
frontRightCollider.steerAngle = Mathf.Lerp(frontRightCollider.steerAngle, steeringAngle, steeringSpeed);
}
Я поворачиваю прикрепленный к машине куб через LookAt и беру у него Y - все работает, это как раз нужный угол поворота колес. Но хотелось бы понять как через математику вычислять этот угол поворота. Пытался так :
Quaternion lookat = Quaternion.LookRotation(target.position - this.transform.position);
Debug.DrawRay(transform.position, lookatWP.eulerAngles, Color.green);
Но луч смотрит куда то вверх и Y у него от 0 до 360 крутится