· [중급자를 위한 유니티 스크립팅 튜토리얼] - Static
· [중급자를 위한 유니티 스크립팅 튜토리얼] - 제네릭(Generic)
· [중급자를 위한 유니티 스크립팅 튜토리얼] - 상속
· [중급자를 위한 유니티 스크립팅 튜토리얼] - 다형성
· [중급자를 위한 유니티 스크립팅 튜토리얼] - 인터페이스
· [중급자를 위한 유니티 스크립팅 튜토리얼] - 확장 메서드
· [중급자를 위한 유니티 스크립팅 튜토리얼] - 네임스페이스
· [중급자를 위한 유니티 스크립팅 튜토리얼] - 리스트
· [중급자를 위한 유니티 스크립팅 튜토리얼] - 딕셔너리
· [중급자를 위한 유니티 스크립팅 튜토리얼] - 코루틴
이 시리즈는 유니티에서 제공하는 튜토리얼을 정리해서 올린 것입니다.
-----------------------------------------------------------------------------------
쿼터니언(Quaternion)
-----------------------------------------------------------------------------------
유니티에서 Transform의 회전은 쿼터니언으로 저장된다.
쿼터니언은 벡터와 유사하게 작동하지만, x, y, z, w 네 가지 구성 요소를 가진다.
이 구성 요소들은 상호 의존적이며, 함께 작동하여
객체가 필요로 하는 모든 회전을 정의한다.
쿼터니언을 다룰 때 가장 중요한 점은 x, y, z, w 구성 요소들이 함께 작동하므로, 개별적으로 조절해서는 안 된다는 것이다.
다행히 유니티는 쿼터니언 관리를 쉽게 해주는 많은 내장 메서드를 제공한다.
-----------------------------------------------------------------------------------
아마 이미 익숙할 회전 관리 시스템은 오일러 각이라고 불린다.
((x,y,z) 표시된 오일러 각)
인스펙터에 표시되는 회전 값은 오일러 각을 사용하는데, 이는 사람이 이해하기가 더 쉽기 때문이다.
오일러 각 회전은 x, y, z 각 축을 중심으로 한 회전을 기반으로 한다.
오일러 각이 더 이해하기 쉽고, 심지어 내부적으로 처리되는 쿼터니언 값을 인스펙터에 보여주기 위해 오일러 각으로 변환까지 하는 짓까지 하며 쿼터니언을 쓰는 이유는 뭘까?
간단히 말해서 오일러 각은 짐벌 록(gimbla lock)이라는 현상에 취약하기 때문이다.
다행히 쿼터니언은 이러한 짐벌 록 문제를 효과적으로 해결한다.
쿼터니언에 내장되어 있는 많은 메서드들이 있지만
그건 각자의 실습을 통해 익히는 것을 추천한다.
-----------------------------------------------------------------------------------
우리는 쿼터니언이 정확히 어떻게 작동하는지, 복잡한 수학 연산을 이해할 필요가 없다.
이 강의에서 기억해두어야할 것은 쿼터니언의 개별 w, x, y, z값을 조절해서는 안되며
유니티에서 회전을 다루는 가장 좋은 방법이 쿼터니언이라는 것이다.
결국 사람이 개발하기에 편한 오일러각은 짐벌락문제가잇으니 쿼터니언으로 계산하고 오일러각에서 쿼터니언으로 변환시키는거군
아마 수동으로 유니티에서 기즈모로 각도조절 하다가 특정 각도는 암만 드래깅해도 물체 각도가 안 바뀌는 현상 본 적 있을거야. 그게 바로 짐벌락임. 여튼 사용자 입장에서 용어정도만 알아도 큰 문제 없음. 계산은 엔진이 다 해주니