Version: 2022.2
언어: 한국어
게임 오브젝트
컴포넌트 소개

트랜스폼

Transform은 게임 오브젝트의 Position, Rotation, Scale 그리고 부모 지정 상태를 저장합니다.게임 오브젝트에는 항상 트랜스폼 컴포넌트가 첨부되어 있으므로 트랜스폼 컴포넌트 없이는 트랜스폼을 제거하거나 게임 오브젝트를 생성할 수 없습니다.

Transform 컴포넌트

트랜스폼 컴포넌트는 씬에 있는 각 게임 오브젝트의 Position, Rotation, Scale을 결정합니다.모든 게임 오브젝트에는 트랜스폼이 있습니다.

트랜스폼 컴포넌트
트랜스폼 컴포넌트

:트랜스폼 축(및 기타 UI 요소)의 컬러를 변경할 수 있습니다(메뉴:Unity > Preferences로 이동하고 Colors & keys 패널 선택).

프로퍼티

프로퍼티: 기능:
Position x, y, z 좌표에서 트랜스폼의 포지션입니다.
Rotation x축, y축, z축을 중심으로 한 트랜스폼의 회전(도 단위로 측정)입니다.
Scale x축, y축, z축에 따른 트랜스폼의 확대/축소입니다.값 “1”은 원래 크기(게임 오브젝트를 임포트한 크기)입니다.

Unity는 트랜스폼의 부모를 기준으로 트랜스폼의 Position, Rotation, Scale 값을 측정합니다.트랜스폼에 부모가 없는 경우 Unity는 월드 공간에서 프로퍼티를 측정합니다.

트랜스폼 편집

2D 공간에서는 트랜스폼을 x축 또는 y축에서만 조작할 수 있습니다.3D 공간에서는 x축, y축, z축에서 트랜스폼을 조작할 수 있습니다.Unity에서 이러한 축은 각각 빨강, 녹색, 파랑으로 표시됩니다.

축별 컬러가 표시된 트랜스폼
축별 컬러가 표시된 트랜스폼

트랜스폼의 프로퍼티를 편집하는 방법은 크게 세 가지입니다.

  • 씬 뷰에서
  • 인스펙터 창에서
  • C# 스크립트에서

씬 뷰

씬 뷰에서 이동, 회전 및 확대/축소 툴을 사용하여 트랜스폼을 수정할 수 있습니다.이러한 툴은 Unity 에디터의 왼쪽 상단 모서리에 있습니다.

손, 이동, 회전, 스케일 툴
손, 이동, 회전, 스케일 툴

씬의 모든 게임 오브젝트에서 트랜스폼 툴을 사용할 수 있습니다.게임 오브젝트를 선택하면 그 안에 Gizmo 툴이 나타납니다.기즈모의 모양은 어떤 툴을 선택하느냐에 따라 달라집니다.

괄호의 키보드 단축기로 기즈모 변환
괄호의 키보드 단축기로 기즈모 변환

세 개의 기즈모 축 중에서 하나를 클릭하여 드래그하면 축의 컬러가 노란색으로 바뀝니다.마우스를 드래그하는 동안 게임 오브젝트는 선택한 축을 따라 이동, 회전 또는 확대/축소됩니다.마우스 버튼에서 손을 떼도 축은 선택된 상태로 유지됩니다.

게임 오브젝트를 이동하는 동안 특정 평면으로 움직임을 고정할 수 있습니다(즉, 축 두 개를 변경하고 세 번째 축은 변경되지 않은 상태로 유지).각 평면에 대한 잠금을 활성화하려면 이동 기즈모 중앙에 있는 작은 컬러 사각형 세 개를 선택합니다.컬러는 정사각형을 선택할 때 잠기는 축을 나타냅니다(예: 파란색 정사각형을 선택하면 Z축이 잠깁니다).

인스펙터 창

인스펙터 창에서 트랜스폼 컴포넌트를 사용하여 선택한 게임 오브젝트의 Transform 프로퍼티를 편집할 수 있습니다.컴포넌트에서 Transform 프로퍼티 값을 편집하는 방법은 두 가지가 있습니다.

  • 프로퍼티 값 필드에 값을 수동으로 입력합니다.이 기능은 세밀한 조정에 사용됩니다.
  • 값 필드를 클릭하고 위쪽 또는 아래쪽으로 드래그하여 값을 늘리거나 줄입니다.이 기능은 세밀하지 않은 조정에 사용됩니다.

C# 스크립트

Transform API를 사용하여 스크립트를 통해 게임 오브젝트의 Transform을 편집합니다.

게임 오브젝트 그룹화

Unity에서는 게임 오브젝트를 부모-자식 계층 구조로 그룹화할 수 있습니다. * 부모 게임 오브젝트에는 해당 Transform 프로퍼티를 사용하는 다른 게임 오브젝트가 연결되어 있습니다. * 자식 게임 오브젝트는 다른 게임 오브젝트에 연결되고 해당 게임 오브젝트의 Transform 프로퍼티를 사용합니다.

계층 창에서 자식 게임 오브젝트는 부모 게임 오브젝트 바로 아래에 표시되며 목록에서 인덴트됩니다.폴드 아웃 아이콘을 선택하여 부모 게임 오브젝트의 자식 게임 오브젝트를 숨기거나 표시할 수 있습니다.

자식 게임 오브젝트는 부모와 똑같이 움직이고, 회전하고, 확대/축소됩니다.자식 게임 오브젝트는 자체적으로 자식 게임 오브젝트를 가질 수도 있습니다.게임 오브젝트에는 여러 개의 자식 게임 오브젝트가 있을 수 있지만 부모 게임 오브젝트는 하나만 있을 수 있습니다.

게임 오브젝트 간의 이러한 여러 수준의 부모-자식 관계는 트랜스폼 계층 구조를 형성합니다.계층 구조의 최상위에 있는 게임 오브젝트(즉, 계층 구조에서 부모가 없는 유일한 게임 오브젝트)를 루트 게임 오브젝트라고 합니다.

부모 게임 오브젝트를 생성하려면 계층 창에서 임의의 게임 오브젝트를 다른 게임 오브젝트로 드래그합니다.그러면 두 게임 오브젝트 사이에 부모-자식 관계가 생성됩니다.

부모-자식 계층 구조의 예시. 이름 왼쪽에 폴드아웃 화살표가 표시된 게임 오브젝트가 부모입니다.
부모-자식 계층 구조의 예시. 이름 왼쪽에 폴드아웃 화살표가 표시된 게임 오브젝트가 부모입니다.

부모 및 자식 게임 오브젝트에 대한 트랜스폼 편집

게임 오브젝트를 부모-자식 계층 구조로 그룹화할 수 있습니다.자세한 내용은 [게임 오브젝트 그룹화](GameObject.html 페이지의 섹션 링크)를 참조하십시오.

자식 게임 오브젝트의 트랜스폼 값은 부모 게임 오브젝트의 트랜스폼 값을 기준으로 표시됩니다.이러한 값을 로컬 좌표 라고 합니다.씬 구성의 경우 일반적으로 자식 게임 오브젝트에 대한 로컬 좌표로 작업하는 것으로 충분합니다.게임플레이에서는 보통 글로벌 좌표 또는 월드 공간에서 정확한 포지션을 찾는 것이 유용합니다.트랜스폼 컴포넌트의 스크립팅 API에는 로컬 및 글로벌 Position, Rotation, Scale 에 대한 별도의 프로퍼티가 있으며, 로컬 좌표와 글로벌 좌표 사이에서 변환할 수 있습니다.

:트랜스폼을 상위 트랜스폼으로 만들 때 하위 트랜스폼을 추가하기 전에 상위 트랜스폼의 위치를 <0,0,0>으로 설정하는 것이 유용합니다.즉, 자식 트랜스폼의 로컬 좌표가 글로벌 좌표와 동일하므로 자식 트랜스폼이 올바른 위치에 있는지 확인하기가 더 쉬워집니다.

Tranforms 및 Scale

Transform의 Scale 은 모델링 애플리케이션의 메시 크기와 Unity에서 해당 메시의 크기 사이의 차이를 결정합니다.Unity에서 메시의 크기(따라서 Transform의 Scale )는 특히 물리 시뮬레이션 중에 중요합니다.기본적으로 물리 엔진은 월드 공간의 1단위가 1미터에 해당한다고 가정합니다.게임 오브젝트가 매우 큰 경우 “슬로우 모션”으로 떨어지는 것처럼 보일 수 있습니다. 우리는 매우 큰 게임 오브젝트가 먼 거리에서 떨어지는 것을 보고 있기 때문에 이것은 올바른 시뮬레이션입니다.

다음 세 가지 요소가 게임 오브젝트의 Scale 에 영향을 줍니다.

  • 사용하는 3D 모델링 애플리케이션에서의 메시 크기
  • 게임 오브젝트의 Import Settings 에서 Mesh Scale Factor 설정
  • 트랜스폼 컴포넌트의 Scale

Tip: If you are using Rigidbodies for physics simulation, read about the Scale property on the Rigidbody component reference page.

트랜스폼 컴포넌트에서 게임 오브젝트의 Scale__을 조정하지 마십시오.실제 크기로 모델을 생성하는 경우 Transform의 Scale__ 을 변경하지 않아도 됩니다.임포트 크기에 따라 일부 최적화가 수행되므로 메시를 임포트하는 스케일을 조정할 수도 있습니다.개별 메시의 임포트 설정 에서 이 작업을 수행하십시오.조정된 Scale 값을 가진 게임 오브젝트를 인스턴스화하면 성능이 저하될 수 있습니다.

참고:__Scale__ 을 변경하면 자식 트랜스폼의 포지션에 영향을 줍니다.예를 들어, 부모 트랜스폼의 스케일을 (0,0,0)으로 조정하면 모든 자식 트랜스폼이 부모 트랜스폼을 기준으로 (0,0,0)에 배치됩니다.

비균일 스케일링

비균일 스케일링은 Transform 내 Scale이 x, y, z에 대해 서로 다른 값(예: (2, 4, 2))을 갖는 경우입니다.반면 균일 스케일링은 x, y, z에 대해 동일한 값을 갖습니다(예: (3, 3, 3)).비균일 스케일링은 몇 가지 특정 경우에 유용할 수 있지만 균일 스케일링과는 다르게 동작합니다.

  • 일부 컴포넌트는 비균일 스케일링을 완전히 지원하지 않습니다.예를 들어 Sphere Collider, Capsule Collider, Light and Audio Source 등 일부 컴포넌트에는 Radius 프로퍼티로 정의된 원형 또는 구형 요소가 있습니다.즉, 타원형이 아닌 비균일 스케일링에서도 원형 모양이 유지됩니다.
  • 자식 게임 오브젝트에 균일하지 않은 스케일을 가진 부모 게임 오브젝트가 있고 해당 부모 게임 오브젝트를 기준으로 회전하는 경우 왜곡되거나 “베어낸” 것처럼 보일 수 있습니다.간단한 비균일 스케일링을 지원하지만 이렇게 기울어지면 제대로 동작하지 않는 컴포넌트가 있습니다.예를 들어, 왜곡된 박스 콜라이더는 렌더링된 메시의 모양과 정확하게 일치하지 않습니다.
  • 균일하지 않은 스케일을 가진 부모 게임 오브젝트의 자식 게임 오브젝트는 회전할 때 스케일이 자동으로 업데이트되지 않습니다.결과적으로 자식 게임 오브젝트가 부모 게임 오브젝트에서 분리된 경우와 같이 스케일을 업데이트할 때 자식 게임 오브젝트의 모양이 갑작스럽게 변경되는 것처럼 보일 수 있습니다.

Transform

게임 오브젝트
컴포넌트 소개