@Senture

Как получить значение угла поворота по y координате в gameobject?

Здравствуйте, мне необходимо получить значение угла поворота gameobject'a, но все никак не могу это сделать, подскажите в какую сторону копать?
Вот это мне нужно получить:
5c3a15b4235dc800325074.png
Вот это я в итоге получаю:
5c3a15d71baa2039688841.png
То, что обведено синим, это я получаю вот так:
mainObject.GetComponent<Transform>().rotation.normalized.y

А то, что обведено синим, я получаю вот так:
mainObject.transform.rotation.ToAngleAxis(out y, out v) // в Y переменной типа float


И то что я заметил:
Все правильно выводится до значения в 360, а если объект повернут к примеру на 361 градус то от кода я получу ответ в 359, а точнее в 358.9999

Что делать не знаю -_-

P.S. Всем огромное спасибо
  • Вопрос задан
  • 3314 просмотров
Решения вопроса 1
MrMureno
@MrMureno Куратор тега Unity
VR for all
не знаю зачем вам преобразование..
mainObject.transform.rotation.ToAngleAxis(out y, out v);

вы бы описали какого эффекта хотите добиться...что и как вращать))
повторять угол по Y.

так пробовали??
obj.transform.rotation = Quaternion.Lerp(obj.transform.rotation, Quaternion.Euler(0, mainObject.transform..eulerAngles.y, 0), Time.deltaTime * 50);


но думаю будет тоже самое..
дело видите ли в чем..
Quaternion.Lerp - будет всегда в БЛИЖАЙШУЮ сторону вертеть))

кватернионы вообще так устроены))
не выйдет у вас "два оборота по часовой" сделать или что то подобное..таким образом..
для вращения это равноценно тому, что ничего не поменялось..

можете попробовать запоминать и накапливать именно ЧИСЛО..УГОЛ))
и тогда лерпить к примеру от нуля до 720...
именно подставляя напрямую Y.

будет тогда два оборота по часовой..как в анимации..

удачи.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы