컴포넌트 사용(Using Components)

컴포넌트는 게임 내에서 오브젝트와 작동에 있어 너트와 볼트와 같은 역할을 함. 이는 모든 게임오브젝트의 기능적 부품 임. 아직 컴포넌트와 게임오브젝트 간의 관계를 이해하지 못한다면, 먼저 Game Objects를 읽어보기를 권해줌.

게임오브젝트란 여러 가지 컴포넌트를 담는 용기임. 디폴트로 모든 게임오브젝트는 자동적으로 Transform 컴포넌트를 가지고 있다. 왜냐하면 Transform은 게임오브젝트가 어디에 위치하며 어떻게 회전하고 크기가 정해지는 가를 결정하기 때문임. Transform 컴포넌트가 없이는, 게임오브젝트는 게임 세상에서 위치를 잃게 된다. 한 예로 빈 게임오브젝트을 생성해 보겠다. 메뉴에서 the GameObject→Create Empty을 클릭하고, 새 게임오브젝트을 선택한 후 인스펙터(Inspector)을 확인하십시오.


빈 게임오브젝트도 하나의 Transform 컴포넌트를 가진다.

인스펙터를 사용하면 해당 게임오브젝트에 어떤 컴포넌트가 부착되어 있는지 항상 확인할 수 있다. 컴포넌트가 추가되고 삭제되어도 인스펙터는 항상 어떤 것이 현재 부착되어 있는지를 보여준다. 사용자는 인스펙터를 사용하여 (스크립트를 포함하여) 어느 컴포넌트의 속성도 변경할 수 있다.

컴포넌트 추가하기(Adding Components)

사용자는 컴포넌트 메뉴를 통하여 선택한 게임오브젝트에 컴포넌트들을 추가 할 수 있다. 여기서는 방금 생성한 빈 게임오브젝트에 Rigidbody을 추가해 보겠다. 메뉴에서 Component→Physics→Rigidbody을 선택하면, 해당 Rigidbody의 속성이 인스펙터에 나타나는 것을 볼 수 있다. 아직 빈 게임오브젝트가 선택되어 있는 동안 Play 을 누르면 사용자는 의외의 것을 보고 놀랄 수도 있다. 한 번 해 보시고 빈 게임오브젝트에 Rigidbody가 어떻게 기능을 추가하는지 확인해 보십시오.( 게임오브젝트의 y-component는 줄어들기 시작함. 이것은 유니티의 물리엔진(physics engine)이 해당 게임오브젝트를 중력 하에 낙하하게 하기 때문임).


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

하나의 게임오브젝트에 사용자는 컴포넌트의 조합을 몇 개라도 부착할 수 있다. 어떤 컴포넌트는 다른 컴포넌트와 합하면 최상의 성능을 발휘함. 예를 들면, Rigidbody는 어떤 Collider와도 작동함. Rigidbody는 NVIDIA PhysX 물리 엔진을 통해 Transform을 제어하고, 해당 Collider는 Rigidbody가 다른 Colliders와 충돌하고 반응하도록 하여 준다. 컴포넌트 조합의 다른 예는 입자 시스템임(Particle System). 그 시스템은 Particle Emitter, Particle Animator, 그리고Particle Renderer을 사용하여 움직이는 입자 그룹을 생성함.

만일 특정 입자 컴포넌트 사용에 대하여 좀 더 알고 싶다면, Component Reference를 확인하십시오. 사용자는 유니티 내에서 인스펙터의 컴포넌트 해더(header) 위에 작은 “?”을 클릭하여 참조 페이지를 확인 할 수 있다.

컴포넌트 편집하기(Editing Components)

컴포넌트의 장점 중 하나는 유연성임. 사용자가 게임오브젝트 하나에 컴포넌트 하나를 부착할 때 해당 컴포넌트에는 다양한 속성과 값이 있어 게임 구축 중에 편집기에서 혹은 게임 실행 중에 스크립트로 조절 할 수 있다.

아래 이미지를 보십시오. 이것은 오디오 소스 컴포넌트가 하나 부착된 빈 게임오브젝트 임. 해당 오디오 소스의 모든 값은 인스펙터에 디폴트 값으로 나타난다.


이 컴포넌트는 하나의 Reference 속성과 7개의 Value 속성을 가지고 있다. Audio Clip이 Reference 속성 임. 이 오디오 소스가 재생 될 때 Audio Clip 속성에서 가리키고 있는 오디오 파일의 재생을 시도할 것 임. 만일 해당 참조가 없으면 재생할 오디오 파일이 없으므로 에러가 발생함. 사용자는 해당 파일을 인스펙터 내에서 참조하여야 함. 이 작업을 하려면 단지 해당 오디오 파일을 프로젝트 뷰에서 드래그 하여 Reference 속성 위로 놓거나 오브젝트 선택기(Object Selector)을 사용하면 된다.


이제 Audio Clip 속성에서 사운드 효과 파일을 가리키고 있다.

컴포넌트는 다른 타입의 컴포넌트, 게임오브젝트 혹은 에셋 중 어느 것이든 포함 할 수 있다. 더 많은 정보를 확인 하려면 Assigning References 페이지를 참조하기 바란다.

해당 Audio Clip의 나머지 속성은 모두 Value 속성들임. 이 속성들은 인스펙터에서 바로 조절될 수 있다. Audio Clip 의 값 속성은 토글, 숫자 값, 드롭 다운 필드가 될 수도 있으며 또한 문자열, 색상, curve, 혹은 다른 타입이 될 수도 있다. Value 속성을 변경하고 조절하는 것이 대하여 더 자세한 정보를 알고 싶다면 Editing Value Properties를 참조하면 된다.

'속성 시험하기(Testing out Properties)'

사용자 게임이 Play Mode 중이라도, 아무 게임오브젝트 라도 인스펙터에서 자유롭게 속성 값을 변경 할 수 있다. 예를 들면, 사용자는 점프의 높이를 여러 가지 다른 높이로 시험해 보고 싶은 경우가 있다. 사용자가 스크립트에서 Jump Height 속성을 생성하면 Play Mode로 들어갈 수 있고, 값을 변경하고 Jump 버튼을 누르고 어떻게 되는지 확인 할 수 있다. 그리고 Play Mode에서 빠져 나오지 않은 채 다시 값을 바꾸어 수 초 이내로 다시 결과를 볼 수 있다. 사용자가 Play Mode에서 나오게 되면 사용자의 속성은 Play Mode 이전 값으로 회복되어 사용자가 작업한 내용을 잃어버리지 않게 함. 이러한 작업 흐름은 사용자가 자유자재로 테스트 할 수 있는 엄청난 성능을 제공함. 저희는 사용자의 감동을 보장함.

컴포넌트 제거하기(Removing Components)

사용자가 컴포넌트를 제거하고 싶다면, 인스펙터에서 해당 해더(header)이 옵션이나- 오른쪽 클릭을 하여 Remove Component을 선택하십시오. 혹은 컴포넌트 해더 위에 ? 옆에 위치한 옵션 아이콘을 왼쪽 클릭하십시오. 모든 속성 값은 사라지며 이것은 회복불가 함. 그러므로 사용 전에 해당 컴포넌트를 영구 삭제 해야 하는지 신중하게 결정하여야 함.

역링크