본문 바로가기

unity tech.

유니티 화면에서의 회전 값과 코드 상의 회전 값

model 이라는 Transform 있다.


유니티 화면에서 Rotation 값들을 입력할 때 보면, 도로 입력한다.


코드 상에서 model.localRotation 값을 보면 라디안 값이다.


model.localRotation = Quaternion.Euler(new Vector3(degreeX, degreeY, degreeZ)); 이런 식으로 값을 적용할 때는 도.



유니티화면에서 도로 입력하고, 코드 상에서 model.localRotation 값(라디안)을 그대로 가져와서 도로 변환해서 model.localRotation 값을 적용해 보면 회전이 유니티 화면에서 입력할 때와 다르게 나온다.


* 라디안 -> 도 : 0.223f * Mathf.Rad2Deg

* 도 -> 라디안 : 90 * Mathf.Deg2Rad


로그로 model.localRotation 값을 확인해보면, 적용하기 전 까지는 값의 변화가 없는데 적용하고 나면 값이 바뀐다. (x, y, z, w가 바뀜... w가 바뀌는 걸로 봐서 내부적으로 별도 연산이 들어 가는 것 같기도...)



유니티 화면에서 입력할 때의 값을 코드로 바로 적용하면 이런 문제가 발생하지 않는다.




유니티화면에서 입력한 값을 그대로 사용하기에는 문제가 있는것 같다.