Доброго времени суток. Каким образом можно определить угол поворота объекта в градусах Unity вместе со знаком? Пробовал с помощью простого "angle = transform.rotation.y *Rad2Deg", где значение передаётся в радианах и переводится в градусы, но не смог добиться желаемого результата. В координатах юнити объект может повернуться на +/- 180 градусов, то есть значение поворота меняет знак при переходе через 0 и +/- 180. Знак в радианах меняется только при переходе через 0 и 360, что не позволяет дать значения в координатах юнити. Например, при вращении объекта от 0 до 360 градусов инспектор юнити даст следующие углы 0...90...180..-90...0, а в радианах 0...0,5...1...0,5...0, то есть от нуля до 180 и опять до нуля всегда с одним знаком. Как можно определить угол со знаком? Заранее благодарен.
Сообщение отредактировал HeadLiner - Сб, 30 Апр 2016, 15:06
В unity для определения поворота обычно используются кватернионы. Чтобы найти угол вращения в градусах нужно его вывести из синуса и косинуса, т.е. если вам нужно вращение по оси y, берем transform.forward.z (косинус) и transform.forward.x (синус) берем арккосинус и по знаку синуса находим, в какой четверти находится угол. Можно сделать так, думаю:
Только нужно понимать, что при sin = 0, значение угла будет "NaN", так как делить на ноль нельзя. Поэтому нужно поставить условие "если син = 0, то угол = 0"
Сообщение отредактировал VolkOrievith - Сб, 07 Май 2016, 07:45