유니티 좌표에서 Euler와 Quaternion의 차이점
Unity 에서 Rotation을 위해서 크게 Euler방식과 Quaternion방식 2가지를 사용한다.
Euler 방식
- Euler 방식은 흔히 생각하는 회전으로써 x,y,z축 을 이용해서 회전을 한다 그러나 이 방법은 짐벌락(Gimbal-lock)이라는 오류가 발생 하게 된다.
- 짐벌락 현상이란? 같은 방향으로 오브젝트의 2개의 회전축이 겹치게 되어 2개의 회전축밖에 남지 않게 되는 현상
짐벌락 현상이 나타나는 이유 : Euler회전축을 이용할때 각각의 축들이 서로 연관되어 있지 않고 독립적으로 회전하기 때문에 2개의 축이 겹쳐지는 일이 발생 하게 되고 따라서 유니티를 통해 2D를 구현할때는 오일러 방식을 이용하여도 문제가 없지만 3D방식을 구현할 때는 문제가 발생하게 된다.
Quaternion방식
- Quaternion방식은 3개의 축과 1개의 스칼라 값을 이용해서 각도를 나타내는 방식으로 저희가 이해하기 어려운 수학적 개념으로 축을 회전 하기 때문에 완전히 알지 못하면 제대로 숫자를 넣어서 원하는 모양으로 만들기 쉽지 않다는 단점과 180도 이상은 구현할 수 없다는 단점이 있지만 Unity에 기본적으로
Quaternion.Euler(float x, float y, float z);
형태로 Euler로 표현되어진 각도를 Quaternion으로 바꿔서 사용할수 있게 한다.
결론
유니티 2D환경에서는 두 개의 차이점이 큰 영향을 끼치지는 않지만 3D환경에서 짐벌락 현상을 방지하기 위해 Quaternion을 이용하는 것이 바람직 하다.