Transform
Position(위치), Rotation(회전), Scale(크기)를 가진다.
Unity는 왼손 좌표계를 사용한다.
우리의 눈이 왼손의 손등을 볼 수 있도록 하면, (손바닥이 앞을 향하도록)
순서대로
첫번째 손가락 (X축의 양수)
두번째 손가락 (Y축의 양수)
세번째 손가락 (Z축의 양수)
로 쉽게 이해할 수 있다. 핵꿀팁인듯.
좌표계를 외울 필요는 없지만, 이렇게 한번 알아두면 계속 기억난다.
프로그램마다 좌표계의 축이 다르지만, 유니티는 이런 좌표계를 사용한다고 알면 된다.
Transform과 transform의 차이
프로그래밍을 배우는 초반에 많이 헷갈렸던 것이다. 개념적 차이를 알고 있어야 한다.
Transform
위치, 회전, 크기를 담고 있는 컴포넌트의 정보다.
(데이터 구조를 알려주는 클래스.)
transform
오브젝트에 할당된 Transform 컴포넌트다. GetComponent<Transform>()과 같다.
(값을 담고 있는 객체.)
위치 나타내보기
절대적
현재 position을 (10, 0, 0) 위치로 바꾼다.
transform.position = new Vector3 (10, 0, 0); // x축, y축, z축 순서
상대적
부모 position의 상대적인 위치로, 부모에서부터 (10, 0, 0)의 위치로 바뀐다.
부모 position 값이 (10, 10, 10)이고, 자식 position 값이 (10, 0, 0)이라면,
-> 자식 오브젝트의 실제 월드 상의 좌표는 (20, 10, 10)이다.
transform.localPosition = new Vector3 (10, 0, 0);
원래 값에서 Offset만큼
position의 x값을 10만큼 더 움직인다. 현재 position + (10, 0, 0)이다.
transform.Translate (10, 0, 0);
회전 나타내보기
절대적
transform 컴포넌트의 rotation 값을 (10, 0, 0) 으로 바꾼다.
transform.rotation = Quaternion.Euler (new Vector3 (10, 0, 0));
원래 값에서 Offset만큼
rotation의 x값을 10만큼 더 회전시킨다.
현재 rotation + (10, 0, 0) 이라고 생각하면 된다.
transform.Rotate (10, 0, 0);
크기 나타내보기
절대적
transform 컴포넌트의 scale 값을 (10, 10, 10) 으로 바꾼다.
transform.localScale = new Vector3 (10, 10, 10);
'Unity' 카테고리의 다른 글
[Unity] Tip / 스크립트가 적용된 오브젝트 쉽게 찾기 (2) | 2018.04.30 |
---|---|
[Unity] 유니티에 기어 VR 개발환경 설정하기 (0) | 2018.04.24 |
[Unity] 유니티 최적화 / 자주 접근하는 컴포넌트는 캐칭하기 (0) | 2018.04.02 |
[Unity] 자주쓰는 Vector3 값, 간단히 나타내기 (0) | 2018.04.02 |
[Unity] Tip / Play 눌렸을 때 구분하기 (0) | 2018.03.30 |