@donvista

Как исправить поворот объекта или заблокировать ось вращения?

https://www.youtube.com/watch?v=WpelcvjmObY
Собственно весь код, всё очень просто. По задумке объект должен смотреть на цель, он это делает всё хорошо, смотрит на цель. Но постепенно при движении объекта относительно цели проворачивается ось Z, а мне надо что бы она оставалась прежней. Пробовал делать Euler.z = 0, но все моё красивое вращение сразу же портится, в каких то осях он даже начинает дико проворачиваться. Каким образом и как мой объект нужно поворачивать, или изначально моё исполнение не верно?
[SerializeField] private Transform target;
    void Update()
    {
        Vector3 relativePos = (target.position - transform.position).normalized;
        transform.rotation = Quaternion.LookRotation(relativePos, transform.up);
    }
  • Вопрос задан
  • 686 просмотров
Пригласить эксперта
Ответы на вопрос 2
MicroProger
@MicroProger
Работает - не трогай
Попробуй заблокировать ось в RigidBody
(на скрине смотри RigidBody, там есть открытая вкладка)
625efb90de028167955155.png
Ответ написан
@donvista Автор вопроса
Моё частичное решение проблемы, ось Z всегда ровная, но при определенных условиях, веревка или кубик, всё же резко перекручивается на 180 градусов, все же жду от вас лучших решений
[SerializeField] private Transform target;
    void Update()
    {
        transform.rotation = target.rotation;
        Vector3 relativePos = (target.position - transform.position).normalized;
        transform.rotation = Quaternion.LookRotation(relativePos, transform.up);
    }
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы