Version: 5.3
Introduction to Components
트랜스폼

컴포넌트 사용

컴포넌트(Components) 는 게임에서 오브젝트와 동작에 관한 기본 구성 요소라 할 수 있습니다. 컴포넌트는 모든 게임 오브젝트 의 작동과 관련한 부품입니다. 아직 컴포넌트와 게임 오브젝트의 관계를 이해하지 못했다면 우선 게임 오브젝트 페이지부터 읽어볼 수 있습니다.

게임 오브젝트는 여러 다양한 컴포넌트의 컨테이너입니다. 기본적으로 모든 게임 오브젝트는 자동으로 Transform 컴포넌트를 갖습니다. 게임 오브젝트가 어디에 위치할지, 어떻게 회전하고 스케일될지 Transform이 지시하기 때문입니다. Transform 컴포넌트가 없으면 게임 오브젝트는 월드에서 위치를 갖지 못할 것입니다. 예를 들어, 빈 게임 오브젝트를 생성해 보겠습니다. GameObject->Create Empty 메뉴 항목을 클릭해야 합니다. 새로운 게임 오브젝트를 선택한 뒤 Inspector 를 볼 수 있습니다.

빈 게임 오브젝트에도 Transform 컴포넌트가 있음
빈 게임 오브젝트에도 Transform 컴포넌트가 있음

선택된 게임 오브젝트에 어떤 컴포넌트가 연결되어 있는지 보려면 항상 인스펙터를 사용하면 됩니다. 컴포넌트가 추가되거나 제거되면 항상 인스펙터가 어느 오브젝트가 현재 연결되어 있는지를 나타냅니다. (스크립트를 포함해)어느 컴포넌트의 프로퍼티라도 인스펙터를 활용해 변경할 수 있습니다.

컴포넌트 추가

선택한 게임 오브젝트에 컴포넌트를 추가하려면 컴포넌트 메뉴를 활용해야 합니다. 이제, 조금 전에 생성했던 빈 게임 오브젝트에 Rigidbody 를 추가해보겠습니다. 메뉴에서 Component->Physics->Rigidbody 를 선택해야 합니다. 그러면 인스펙터에 리지드바디의 프로퍼티가 표시됩니다. 빈 게임 오브젝트를 선택한 상태에서 Play 버튼을 누르면 놀랄 만한 일이 발생합니다. 빈 게임 오브젝트에 리지드바디가 어떤 기능을 추가했는지 확인해볼 수 있습니다(게임 오브젝트 트랜스폼의 Y 포지션이 줄어들기 시작합니다. 이는 Unity의 물리 엔진에 따라 게임 오브젝트가 중력의 영향을 받고 낙하하기 때문입니다).

Rigidbody 컴포넌트가 추가된 빈 게임 오브젝트
Rigidbody 컴포넌트가 추가된 빈 게임 오브젝트

다른 방법은 오브젝트의 인스펙터에서 Add Component 버튼을 사용하여 활성화할 수 있는 Component Browser 를 사용하는 것입니다.

컴포넌트 브라우저
컴포넌트 브라우저

브라우저로 컴포넌트를 카테고리별로 편리하게 탐색할 수 있으며 검색 상자에서 이름으로 컴포넌트를 찾을 수 있습니다.

하나의 게임 오브젝트에 컴포넌트 여러 개 또는 컴포넌트의 조합을 연결할 수 있습니다. 일부 컴포넌트는 다른 컴포넌트와 결합해서 최상의 결과를 냅니다. 예를 들어 리지드바디는 모든 콜라이더와 작동합니다. 리지드바디는 NVIDIA PhysX 물리 엔진을 통해 트랜스폼을 제어하며 콜라이더는 리지드바디가 다른 콜라이더와 충돌 및 상호작용하도록 만듭니다.

특정 컴포넌트의 사용에 대해 더 알고 싶으면 관련 컴포넌트 레퍼런스 페이지를 읽어보십시오. 또한 인스펙터에서 컴포넌트 헤더의 작은 ?를 클릭하면 Unity의 컴포넌트 레퍼런스 페이지에 액세스할 수 있습니다.

컴포넌트 편집

컴포넌트의 최대 장점 중의 하나는 유연성입니다. 게임 오브젝트에 컴포넌트를 연결하면 컴포넌트의 여러 값이나 프로퍼티 를 통해 게임 개발 중에는 에디터에서, 또는 게임 실행 중에는 스크립트에서 여러 가지 사항을 수정할 수 있습니다. 프로퍼티에는 레퍼런스 라는 두 가지 주요 타입이 있습니다.

아래 그림을 볼 수 있습니다. Audio Source 컴포넌트가 있는 빈 게임 오브젝트입니다. 인스펙터의 Audio Source 값은 모두 기본값입니다.

이 컴포넌트에는 한 개의 레퍼런스 프로퍼티와 일곱 개의 값 프로퍼티가 포함되어 있습니다. Audio Clip 은 레퍼런스 프로퍼티입니다. 오디오 소스가 재생을 시작하면 Audio Clip 프로퍼티에 레퍼런스된 오디오 파일이 재생됩니다. 레퍼런스가 없으면 재생할 오디오가 없어 오류가 발생합니다. 그러므로 인스펙터에서 파일을 레퍼런스해야 합니다. 프로젝트 뷰에서 레퍼런스 프로퍼티로 오디오 파일을 드래그하거나 오브젝트 셀렉터를 활용해야 합니다.

이제 오디오 클립 프로퍼티에서 음향 효과 파일이 레퍼런스됩니다
이제 오디오 클립 프로퍼티에서 음향 효과 파일이 레퍼런스됩니다

컴포넌트는 모든 타입의 컴포넌트, 게임 오브젝트, 에셋에 대한 레퍼런스를 포함할 수 있습니다. 레퍼런스의 할당에 대한 자세한 정보는 프로퍼티 편집 페이지를 참고해야 합니다.

오디오 클립의 나머지 프로퍼티는 전부 값 프로퍼티로, 인스펙터에서 직접 조정할 수 있습니다. 오디오 클립의 값 프로퍼티는 모두 토글, 숫자 값, 드롭다운 필드이지만 텍스트 문자열, 컬러, 커브 및 기타 타입도 가능합니다. 자세한 내용과 값 프로퍼티의 편집은 값 프로퍼티 편집 페이지를 참조하십시오.

컴포넌트 컨텍스트 메뉴 커맨드

컴포넌트의 컨텍스트 메뉴에는 유용한 커맨드가 여러 개 있습니다.

컴포넌트 컨텍스트 메뉴
컴포넌트 컨텍스트 메뉴

인스펙터의 컴포넌트 패널에서 오른쪽 상단에 있는 “기어” 아이콘에서도 동일한 커맨드를 사용할 수 있습니다.

초기화

가장 최근의 편집 세션 이전에 컴포넌트의 프로퍼티가 가졌던 값을 복원하는 커맨드입니다.

제거

Remove Component 커맨드는 게임 오브젝트에 더 이상 컴포넌트 연결이 필요 없는 경우에 사용 가능합니다. 컴포넌트끼리 서로 의존하는 조합이 있으니 유의해야 합니다(예를 들어, 힌지 조인트리지드바디가 연결되어 있는 경우에만 작동합니다). 다른 컴포넌트가 의존하고 있는 컴포넌트를 제거하려고 하면 경고 메시지가 표시됩니다.

위로 이동/아래로 이동

The Image Effects components each apply a specific visual effect to the rendered view, but the order in which the effects are applied is important. The context menu has Move Up and Move Down

복사/붙여넣기

Copy Component 커맨드는 컴포넌트의 타입과 현재 프로퍼티 설정을 저장합니다. Paste Component Values 를 이용하면 이런 값을 동일한 타입의 다른 컴포넌트에 붙여넣을 수 있습니다. 또한 Paste Component As New 를 활용하면 복사한 값을 오브젝트에 붙여넣어 새 컴포넌트를 생성할 수 있습니다.

프로퍼티 테스트

게임이 Play Mode 일 때는 모든 게임 오브젝트 인스펙터의 프로퍼티를 자유롭게 변경할 수 있습니다. 다양한 높이의 점프를 시험해보는 예를 들어 보겠습니다. 스크립트에서 Jump Height 프로퍼티를 생성하면 재생 모드에 들어가 값을 변경하고 점프 버튼을 눌러 결과를 관찰합니다. 그리고 재생 모드를 종료하지 않은 상태에서 값을 바꿔서 바로 결과를 확인합니다. 재생 모드를 종료하면 프로퍼티는 재생 모드 이전의 값으로 되돌아가므로 작업에 손실이 발생하지 않습니다. 이런 워크 플로는 여러 차례의 반복을 통해 시간을 낭비하지 않고 게임플레이 실험, 조정, 다듬기 작업을 진행하는 데 큰 도움이 됩니다. 재생 모드에서 어떤 프로퍼티라도 수정할 수 있습니다. 놀라운 기능을 체험해 보세요.

Introduction to Components
트랜스폼