유니티 컴포넌트 – 유니티 엔진의 장점을 하나 들라고 하면, 가장 먼저 떠올릴 수 있는 것 중 하나가 바로 컴포넌트 방식으로 게임 오브젝트 (Unity GameObject) 들을 다룬다는 것입니다.
유니티 컴포넌트 (Unity Component)의 특징
유니티에서는 게임 오브젝트의 특정한 작동을 가능하게 만드는 다양한 컴포넌트들을 엔진 차원에서도 제공하고, 게임 프로그래머가 직접 만들어서 사용할 수도 있습니다. (이를 커스텀 컴포넌트라고 합니다) 무기나 몬스터와 같이 서로 다른 게임 오브젝트 (GameObject)라고 하더라도 공통된 성질이나 작용이 있으면 하나의 컴포넌트를 사용해서 제어하는 것이 가능합니다.
유니티 컴포넌트 활용 사례 – 충돌체와 리지드 바디
예를 들어, 여기에 미믹이라는 몬스터와 강철검이라는 무기가 있다고 해 보겠습니다. 몬스터(미믹)와 강철검은 전혀 다른 용도의 게임 오브젝트이지만 공통된 기능이 필요합니다. 바로 플레이어 캐릭터와 충돌하게 되면 그것을 감지해내야 한다는 것입니다.
따라서 이들 모두에게는 물리적 충돌을 감지하고 그에 맞는 반응을 하도록 만들어진 컴포넌트인 ‘충돌체( collider )’가 필요합니다. 컴포넌트로서 충돌체라는 것은 동일하지만, 이것을 몬스터에 붙이면 몬스터가 플레이어 캐릭터와 충돌하는 것을 알려 주고, 무기에 붙이면 무기가 플레이어 캐릭터와 충돌하는 것을 알려 줍니다.
이처럼 유니티에서는 여러 게임 오브젝트에 공통적으로 사용할 수 있는 수많은 컴포넌트들이 있습니다. 물리 시뮬레이션을 담당하는 리지드 바디 ( rigidbody ) 도 그 중의 하나입니다. 미믹에 리지드 바디를 붙이면 중력의 영향을 받아 높은 곳에서 낮은 곳으로 추락하거나 플레이어의 일격을 맞고 튕겨 나가도록 할 수 있습니다. 마찬가지로 강철검에 리지드 바디를 붙여 같은 목적으로 사용할 수도 있습니다.
컴포넌트 (Unity Component)가 강력한 이유
유니티 컴포넌트는 강력한 기능을 가지고 있습니다. 가장 중요한 이유 중 하나는 자신이 만들고자 하는 게임에 필요한 모든 컴포넌트를 스스로 만들 필요가 없다는 것입니다. 앞에서 말한 것 같이 유니티 엔진 차원에서 제공하는 유니티 컴포넌트가 아니고, 프로그래머가 직접 만든 유니티 컴포넌트라고 해도 타인이 만든 것을 내가 재사용하는 것이 가능합니다.
예를 들어 유니티 에셋 스토어 (Unity Asset Store)에서 유료로 팔리거나 또는 무료로 구할 수 있는 많은 컴포넌트들을 사용하면 게임 프로그래머가 아닌, 게임 기획자( 게임 디자이너 ) 혹은 그래픽 아티스트 혼자 힘으로도 간단한 게임 디자인 테스트용 프로토타입을 만들 수 있습니다.
게임 기획자가 반드시 배워야 할 유니티 컴포넌트 사용법
따라서 게임 기획자라면 유니티 컴포넌트 (Unity Component)가 무엇이고 어떻게 사용하는 것인지를 배워 둘 필요가 있습니다. 최근의 게임 개발 방법론이 두꺼운 바이블 형 기획서를 작성하기 보다는 프로토타입을 빨리 만들어 구상한 게임 플레이를 최대한 빨리 테스트해 보는 방식을 따르고 있기 때문에, 게임 기획자들에게도 유니티 컴포넌트 (Unity Component)에 대한 이해가 요구됩니다.
더 공부할 자료 - 개발 능력 다양화를 위한 학습의 필요성
유니티 엔진의 대안으로서, 인디 개발자들에게 선풍적인 인기를 끌고 있는 엔진이 바로 고도 엔진입니다. 혹시 고도 엔진을 배워 보려고 하신다면, 다음의 온라인 강의를 체크해 보시기 바랍니다.