어떤 오브젝트의 포지션값을 받아오기는 쉽습니다.
gameObject.transform.position 으로 쉽게 받을 수 있죠.
그래서 각도값도 이렇게 받으면 되겠지 싶어서
gameObject.transform.rotation 으로 각도를 받아오려 시도하면
다음과 같이 이상한 소수만 받아집니다.
이 소수는 쿼터니언 값입니다.
우리가 흔히 사용하는 0~360도의 각도는 오일러각도인데,
오일러각을 사용하여 오브젝트를 x, y, z축으로 회전시키다 보면 짐벌락 현상이 일어나기 때문에
유니티에서는 오일러값을 쿼터니언값으로 변환하여 사용합니다.
그래서 저렇게 쿼터니언값이 출력되는 것입니다.
짐벌락 현상에 관한 설명은 다음 영상이 잘 설명해주고있으니 링크로 대체하겠습니다.
https://www.youtube.com/watch?v=zc8b2Jo7mno
즉, 유니티를 이용하는 사람들을 위하여 Transform 인스팩터의 rotation 값은 사람들에게 친숙한 오일러 각으로 표시되지만,
시스템 내부에서는 여러가지 장점을 위해 오일러 각을 쿼터니언으로 변경해서 사용한다는 것입니다.
그래서 쿼터니언값을 오일러각으로 받아오고 싶다면 다음과같은 명령어를 쓰면 됩니다.
둘 다 같은 결과가 출력됩니다.
또는, 오브젝트의 각도를 직접적으로 바꿔주고 싶다면 다음과 같이 사용하면 됩니다.
쿼터니언과 오일러각에 관한 더 자세한 설명은 유니티 문서고에서 확인할 수 있습니다.
https://docs.unity3d.com/kr/2018.1/Manual/QuaternionAndEulerRotationsInUnity.html
'Unity > Tip' 카테고리의 다른 글
[Unity Tip] 유니티 초당 프레임 표시(Unity Display FPS on Screen) (1) | 2019.01.01 |
---|---|
[Unity Tip] 유니티 키스토어 생성 (Create Unity keystore) (0) | 2018.10.28 |
[Unity Tip] 유니티 UI 터치 제외시키기 (0) | 2018.10.11 |
[Unity Tip] 스크립트로 애니메이션 속도 조절하기 (How to control animation speed in script) (0) | 2018.10.01 |
[Unity Tip] 유니티 반응형 UI 설정하기 (Unity responsive UI setting) (0) | 2018.09.27 |