Transform 4
[Unity3D] 게임오브젝트(GameObject) 스내핑(Snapping)
정점 스내핑(Vertex Snapping) 게임오브젝트를 배치할 경우 정확한 사이즈를 알고 있을 경우에는 Transform 속성에 값을 입력해서 배치하면 되지만 마우스를 사용해서 배치하게 되면 정확하게 배치하기가 어렵습니다. 하지만 정점 스내핑 기능을 사용하면 게임오브젝트를 손쉽게 배치할 수 있습니다. 정점 스내핑을 사용하는 방법은 다음과 같습니다. v를 누른 상태에서 원하는 정점에 마우스를 갖다댑니다. 마우스 왼쪽 버튼을 누른 상태에서 배치하고자 하는 다른 정점 옆으로 드래그 합니다. Shift + V로 정점 스내핑 기능의 On/Off를 전환할 수 있습니다. 단위 스내핑(Unit Snapping) 단위 스내핑을 사용하면 Settings에 정의된 단위 거리만큼 게임오브젝트를 배치할 수 있습니다. Edit..
[Unity] 트랜스폼(Transform) 크기(Scale)
Transform.lossyScale Transform.lossyScale은 게임오브젝트의 절대적인 크기를 나타냅니다. Transform.lossyScale은 읽기전용(readonly)이기 때문에 게임오브젝트의 절대적인 크기를 설정할 수 없습니다. Transform.lossyScale은 게임오브젝트의 부모 자식 관계에서 자식이 회전했을 경우 크기가 왜곡되기 때문에 유니티에서는 절대적인 크기를 설정할 수 없게 한 것 같습니다. 다음은 Transform.lossyScale의 예제 코드입니다. Debug.Log(transform.lossyScale); Transform.lossyScale으로는 절대적인 크기를 설정할 수 없지만 절대적인 크기를 설정하는 다른 방법이 있습니다. 부모를 null로 설정하고 loca..
[Unity] 트랜스폼(Transform) 회전(Rotation)
짐벌락(Gimbal Lock) 먼저 짐벌락을 설명하기 전에 오일러각(Euler angle)에 대해서 이해해야 합니다. 오일러각은 3차원 공간에서 강체가 놓인 방향을 표시하기 위해 도입한 오일러가 도입한 세 개의 각도입니다. x축을 롤(roll), y축을 피치(pitch), z축을 요(yaw)라고도 부릅니다. 오일러각을 이용해서 물체를 회전하다보면 두 축이 한 축으로 되는 현상이 발생합니다. 이를 짐벌락이라고 합니다. 짐벌락은 두 축이 한축으로 되기 때문에 한 축이 제 역할을 못하게 되는 현상입니다. 한 축으로 회전함에도 불구하고 다른 축들이 영향을 받는 이유는 축들이 서로 연결되어있기 때문입니다. 이해를 돕기 위해 예를 들어 보겠습니다. 아래 하이어라키 구조를 보면 x축(빨간색)은 y축(초록색)에 연결되..
[Unity] 트랜스폼(Transform) 이동(Move)
유니티 좌표계 프로그램마다 사용하는 좌표계가 다릅니다. 따라서 좌표계에 대해서 이해하는 것은 매우 중요합니다. 유니티에서는 위치를 표현할 때 왼손 좌표계를 이용합니다. X축은 빨간색, Y축은 초록색, Z축은 파란색(RGB순서)으로 표현합니다. Transform.position Transform.position은 게임오브젝트의 절대좌표를 나타냅니다. Transform.position에 Vector3를 대입하면 해당 위치로 이동합니다. 다음은 Transform.position의 예제 코드입니다. transform.position = new Vector3(x, y, z); Transform.localPosition Transform.localPosition은 게임오브젝트의 상대좌표를 나타냅니다. 게임오브젝트의..