💭상황
Horizontal 입력을 받으면 z축 회전, Vertical 입력을 받으면 x축 회전을 구현해야 함
❗문제
z축 회전은 정상적으로 작동하지만, x축 회전은 최대 90도 까지만 회전 후 더 이상 회전하지 않는 문제가 발생함.
❓이유
짐벌락(Gimbal Lock) 현상
유니티에서는 오일러각도를 사용하는 쪽이 사용자 입장에서는 이해하기 쉽다고 함.
실제로는 쿼터니언을 사용하여 연산을 수행하는데, 여기에는 w인자까지 있어 직관적으로 이해하기 어렵기 때문에 오일러각도를 사용한다고 한다.
그런데 오일러각을 사용하게되면 x축 회전하다가 y축이랑 합쳐져서 자유롭게 각도를 변경하지 못한다던지 하는 문제가 발생한다고 함. 유니티 내부 연산 문제라고...
💡해결법
transform.Rotate(new Vector3(xRot, yRot, zRot));
해당 메소드를 사용하면 쿼터니언 연산이 실행되어 문제를 해결할 수 있다.
실제로 잘 돌아가도록 해결 완료.