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