본문 바로가기
Unity

Unity Inspector 에서 자동으로 컴포넌트 할당되는 원리

by Oz Driver 2025. 3. 9.

Unity는 Inspector 창에서 특정 컴포넌트 타입의 변수를 정의했을 때, 해당 게임 오브젝트가 여러 컴포넌트를 가지고 있어도, 지정된 타입에 맞는 컴포넌트만 자동으로 선택해서 할당합니다.

이 원칙은 모든 컴포넌트에 동일하게 적용되며, Unity가 오브젝트를 관리하는 방식에서 비롯됩니다.

 

 

Transform 컴포넌트의 경우

모든 게임 오브젝트는 기본적으로 Transform 컴포넌트를 가지고 있습니다.

Transform은 오브젝트의 위치, 회전, 크기를 관리하는 컴포넌트로, 이 컴포넌트가 없는 오브젝트는 존재할 수 없습니다.

 

만약 당신이 스크립트에서 Transform 타입의 변수를 선언했다면, 이 변수는 Inspector 창에서 게임 오브젝트를 드래그해 넣을 때 오브젝트에 포함된 다른 컴포넌트는 무시하고, 오직 Transform만 가져옵니다.

게임 오브젝트가 MeshRenderer, Collider, 또는 AudioSource 같은 다른 컴포넌트를 가지고 있어도 상관없습니다. Unity는 그 중에서 Transform 컴포넌트만 자동으로 선택해 변수에 할당합니다.

 

Script 에서 

public Transform playerTransform;

로 선언하고 

 

 Inspector 창에서 playerTransform 에 'Player Character' 라는 GameObject 를 드래그했을 때

 

Player Tranform 은 'Player Character'  오브젝트의 Transform 컴포넌트만 가져옵니다.

오브젝트가 어떤 종류의 다른 컴포넌트를 가지고 있든 상관없습니다.

 

 

Rigidbody 컴포넌트의 경우

게임 오브젝트에 추가할 수 있는 컴포넌트 중 하나가 **Rigidbody**입니다.

Rigidbody는 물리 연산을 적용하기 위해 필요한 컴포넌트로, 중력이나 충돌 같은 물리적 효과를 시뮬레이션할 때 주로 사용됩니다.

 

만약 스크립트에서 Rigidbody 타입의 변수를 선언했다면, 이 경우에도 Inspector 창에서 게임 오브젝트를 드래그하면 Unity는 그 오브젝트에서 Rigidbody 컴포넌트를 자동으로 찾아서 할당합니다.

만약 해당 오브젝트에 Rigidbody가 없다면, Inspector 창에서 드래그할 수 없거나 오류 메시지가 뜨겠죠.

그리고 이때도 오브젝트에 여러 다른 컴포넌트가 있더라도 오직 Rigidbody 컴포넌트만 가져옵니다.

 

그래서 위 이미지서 예시를 든 것처럼,  Inspector 창에서 게임 오브젝트를 드래그하면, Unity는 그 오브젝트의 Rigidbody 컴포넌트만 선택해서 myRigidbody 변수에 할당합니다.

오브젝트에 MeshRenderer, Collider 등 다른 컴포넌트가 많아도 타입에 맞는 컴포넌트만 가져오는 되는 것입니다.

 

 

내부 작동 원리

Unity는 게임 오브젝트가 가지고 있는 다양한 컴포넌트를 내부적으로 관리합니다.

게임 오브젝트에 여러 개의 컴포넌트가 포함될 수 있지만, Unity는 Inspector에 정의된 타입에 맞춰 해당 오브젝트의 컴포넌트를 자동으로 검색합니다.

그리고 그 중에서 일치하는 컴포넌트를 선택하여 할당합니다.

 

이 과정은 Unity 엔진이 게임 오브젝트와 그 안에 포함된 컴포넌트들을 관리하는 방식 덕분에 가능한 것입니다. 게임 오브젝트는 일종의 컨테이너처럼 다양한 컴포넌트를 담고 있지만, 특정한 타입의 컴포넌트만 필요할 때 Unity는 이를 자동으로 찾아내서 할당해 줍니다.

 

정확하게는 드래그한 후 마우스를 놓는 순간 에 Unity가 필요한 컴포넌트를 찾아서 할당하고, 그 후에는 별도의 추가 작업 없이 바로 그 컴포넌트를 사용할 수 있게 됩니다.

 

 

정리

게임 오브젝트에 여러 컴포넌트가 있을 때, Unity는 지정된 타입의 컴포넌트만 자동으로 선택해 할당합니다.

Transform 컴포넌트는 게임 오브젝트마다 기본으로 포함되어 있기 때문에 언제나 드래그할 수 있습니다.

 

Rigidbody와 같은 다른 컴포넌트들도 동일하게 동작하며, 해당 컴포넌트가 오브젝트에 있을 경우에만 Inspector에서 드래그해서 할당할 수 있습니다.

 

이 원칙 덕분에 우리는 Inspector 창에서 게임 오브젝트를 드래그해 넣기만 하면, Unity가 자동으로 필요한 컴포넌트만 가져다 할당해 주는 편리함을 누릴 수 있는 것입니다.