Vector3 Lerp Rotation

Я хочу сделать вращение Vector3 в Unity 3D. Однако оси вращения не делают правильное вращение. Это потому, что я вращаю две оси одновременно x и y. Я должен разделить два поворота. Что я могу сделать? Спасибо за помощь мне.

Vector3 start = new Vector3(0,0,0)Vector3 target = new Vector3(0,0,0)transform.localEulerAngles = Vector3.Lerp(start,target,time)

1 ответ

Использование поворота Vector3 через Vector3.Lerp может привести к проблемам с блокировкой карданного подвеса, и это может быть вашей проблемой.

Лучший способ прощупать вращение - использовать transform.Rotate(); функция.

В качестве альтернативы вы можете использовать Quaternion.Lerp(); и создать начало и конец кватернионов, используя Quaternion.Euler();, Это даст вам самые надежные результаты, так как Quaterion вращение сложнее, чем Vector3 и устраняет любые проблемы, которые могут возникнуть в Vector3 севообороты.

Изменить: Пожалуйста, не забудьте опубликовать целые фрагменты вашего кода. Lerp означает линейную интерполяцию и требует от 0 до 1, где 0 - начальная точка, а 1 - конечная точка. Многие люди используют эту функцию неправильно и сталкиваются с проблемой. Поскольку я не вижу ваш код, я предположил, что вы сделали это правильно, но я не знаю, если не увижу реальный код:)

Другие вопросы по тегам