씬안에 있는 모든 게임 오브젝트는 기본적으로 Transform 컴포넌트를 갖고 있다. ( Normal - > Debug 전환 모습 )

 

Transform을 통하여 객체에 대한 좌표(Position), 회전(Rotation), 크기(Scale) 들을 저장하고 조작할 수 있다.

열거자 (enumerators)를 지원하므로 부모 자식 계층구조에서 루프 탐색을 허용한다. 

Transform.position, localPosition

public Vector3 position { get; set; }

해당 트랜스폼의 월드 좌표를 나타낸다.

public Vector3 localPosition { get; set; }

부모에 대한 상대좌표이다. (부모의 zero좌표가 기준점이 된다, 부모가 없다면 월드좌표 공간이 기준이 된다.)

속성을 나타내므로 하위 컴포넌트 값을 설정할 수는 없다. 

Transform.lossyscale, localScale

public Vector3 lossyScale { get; } 해당 트랜스폼의 월드 크기를 나타낸다. (읽기 전용)

public Vector3 localScale { get; set; } 부모에 대한 하위 트랜스폼의 상대크기 이다.  (부모가 없다면 월드크기와 같다.)

Transform.rotation, localRotation

public Quaternion rotation { get; set; } 쿼터니언(quaternion) 으로 트랜스폼의 회전각을 나타낸다.

public Quaternion localRotation { get; set; } 부모(쿼터니언 회전각)에 대한 해당 트랜스폼의 쿼터니언 회전각을 나타낸다.


Transform.eulerAngles, localEulerAngles

public Vector3 eulerAngles { get; set; } 오일러앵글로 트랜스폼의 회전각을 나타낸다. 

public Vector3 localEulerAngles { get; set; } 부모의 트랜스폼 회전각에 대하여 해당 회전각의 오일러앵글을 나타낸다.

오일러회전에서는 짐벌락 현상이 발생하므로  Quternian(쿼터니언) 회전을 사용하거나 제한된 범위에서 회전으로 설계해야 한다.

짐벌락 발생 : 두번째 회전이 90도 또는 270도에 가까워 질 때 첫 번째 회전축과 세 번째 회전의 두개 축이 거의 일치하여 자유도가 2축으로 한정되는 현상 


+ Recent posts