Как заставить колесо автомобиля вращаться при движении автомобиля?C#

Место общения программистов C#
Ответить
Anonymous
 Как заставить колесо автомобиля вращаться при движении автомобиля?

Сообщение Anonymous »

Я работаю над гоночной игрой, но эта проблема меня очень зацепила.
Приведенный ниже код должен заставить колесо вращаться в зависимости от скорости, а также вращаться из стороны в сторону. в зависимости от угла поворота.
Вращение колеса и рулевое управление работают так, как задумано, но проблема в том, что ось 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»