레트로의유니티09장,10장_벡터, 쿼터니언, 전역 공간, 오브젝트 공간, 지역 공간

k_dah·2021년 7월 23일
0

unity

목록 보기
4/15

"레트로의 유니티 게임 프로그래밍 에센스" 책을 참고하여 작성하였다.


벡터 수학

: 위치, 방향, 회전, 속도 크기를 비롯한 다양한 계산에 사용됨

-방향벡터(= 정규화된 벡터) : 크기가 1인 벡터
-벡터의 뺄셈

: " B-A " 는 A에서 B로 가려면 어떤 방향으로 얼마만큼 가야 하는지

-벡터의 내적

: 내적 AB는 벡터B를 벡터A의 지평선으로 끌어내리는 연산,
상대방 벡터가 자신의 지평선으로 끌어내려졌을 때의 길이
내적을 통해 어떤 두 물체 사이의 각도를 쉽게 파악 가능
+Vector3 a, Vector3 b -> Vector3.Dot(a,b)

-벡터의 외적 (AxB)

: 두 벡터를 모두 수직으로 통과하는 벡터를 구하는 연산
외적을 통해 두 벡터가 이루는 평면에 수직인 방향을 알 수 있음
+Vector3 a, Vector3 b -> Vector3.Cross(a,b)

쿼터니언

: 회전을 나타내는 타입 , '한 번에 회전하는 방식'
유니티는 내부에서는 쿼터니언으로 회전을 처리하지만 인스펙터 창에서는 Transform 컴포넌트의 Rotation을 Vector3(오일러각)으로 다룸

-새로운 회전 데이터 생성
Quternion rotation = Quaternion.Euler(new Vector3(0, 60, 0));
-현재 회전에서 '더' 회전
Quaternion a = Quaternion.Euler(30, 0, 0);
Quaternion b = Quaternion.Euler(0, 60, 0);
//a만큼 회전한 상태에서 b만큼 더 회전, 곱셈으로 표현!
Quaternion rotation = a*b

유니티 공간

-전역 공간 : 게임 월드가 기준
-오브젝트 공간 : 부모 게임 오브젝트가 기준
-지역 공간 : 자기 자신이 기준

*Inspector 창에 표시되는 위치, 회전, 스케일은 지역 공간 기준의 값들

*유니티는 편의상 지역공간과 오브젝트 공간을 합쳐 지역 공간으로 부른다.
->지역 공간에서 위치, 회전, 스케일값 측정 : 부모 게임 오브젝트를 기준으로 측정 (지역 공간)
->지역 공간에서 평행이동 : 게임 오브젝트 자신의 방향 기준으로 평행이동 (오브젝트 공간)

profile
개똥이

0개의 댓글

관련 채용 정보