Приведенный ниже код должен заставить колесо вращаться в зависимости от скорости, а также вращаться из стороны в сторону. в зависимости от угла поворота.
Вращение колеса и рулевое управление работают так, как задумано, но проблема в том, что ось Z колеса переворачивается каждые 360 градусов по оси X.
Я не знаю. Не понимаю, почему это так.
Код: Выделить всё
private void Update()
{
transform.localRotation = Quaternion.Euler(transform.localRotation.eulerAngles.x, steerAngle, transform.localRotation.eulerAngles.z);
wheelxRotation = Vector3.Dot(rb.GetPointVelocity(wheelMesh.transform.position), transform.forward) * Time.deltaTime / wheelCircumference * 360;
Quaternion steerRotation = Quaternion.Euler(wheelMesh.transform.localRotation.eulerAngles.x, steerAngle, wheelMesh.transform.localRotation.eulerAngles.z);
wheelMesh.transform.localRotation = steerRotation;
wheelMesh.transform.Rotate(-Vector3.right, wheelxRotation);
Debug.Log(wheelMesh.transform.localEulerAngles);
}
Как видите, колесо кажется перевернули, несмотря на то, что локальная ось Z не изменилась.
Этот переворот происходит при каждом повороте колеса на 360 градусов (при его вращении).

Подробнее здесь: https://stackoverflow.com/questions/791 ... -car-moves