오일러 각(Euler Angles)과 짐벌락(Gimbal-Lock)
- 2D 게임에서는 오일러 각(Euler Angles)을 이용하여 각도를 구현하면 되지만 3D게임에서는 모든 각도를 통제해줘야하기때문에 오일러 각 만으로는 구현이 어렵다.
- 오일러 각의 문제점
-짐벌락 (Gimbal-Lock) 현상
-3d 오브젝트의 x,y,z축 중 한축이 다른축과 합쳐지면서 한 축에 대한 계산이 불가능해지는 현상
- 짐벌락 현상 관련 영상
- https://www.youtube.com/watch?v=zc8b2Jo7mno
쿼터니언(Quaternion)
- 오브젝트의 회전은 쿼터니언으로 관리한다.
- 쿼터니언은 x,y,z,w 4개의 성분으로 이루어져 있다.
- 쿼터니언은 오브젝트를 한번의 연산으로 회전을 시켜서 짐벌락이 발생하지 않고 90도 회전이 가능합니다.
- Vector3를 쿼터니언으로 다룬다.
- 유니티에서는 Quaternion.Euler함수를 이용해서 오일러각을 쿼터니언으로 변경하여 사용
예시)
transform.roation = Quaternion.Euler(new Vector3(30,40,100));