본문 바로가기

Unity

상속과 컴포넌트

상속

게임 엔진은 완성된 기반 코드를 제공하므로 이를 재사용해서 생산성을 높일 수 있다.

이때 코드 재사용을 위해 사용하는 방법이 '상속'이다.

 

상속이란 이미 만들어진 클래스(부모 클래스)에 새로운 코드, 기능을 붙여서 새로운 클래스(자식 클래스)를 만드는 것이다.

 

예를 들어, 게임에서 몬스터를 구현하려고 할 때, Monster class를 부모 클래스로, 오크, 고블린 등 다양한 파생 몬스터를 자식 클래스로 작성할 수 있다.

 

또한 자식 클래스를 부모 클래스로 다시 재사용할 수 있다.

 

그러나 상속에만 의존해서 코드를 작성할 경우, 오히려 코드 재사용 때문에 더 많은 작업을 수행해야 하는 경우도 있으므로 이를 해결하기 위해 컴포넌트 패턴을 이용한다.

 

컴포넌트 패턴(컴포지션 패턴)

미리 만들어진 부품을 조립하여 완성된 오브젝트를 만드는 방식으로, 이때 미리 만들어진 부품을 컴포넌트라고 한다.

다양한 컴포넌트들을 조합해서 하나의 게임 오브젝트에 여러 기능을 추가할 수 있다.

 

유니티에서 한 오브젝트 내 컴포넌트들을 보여주는 Inspector 창

 

이렇게 컴포넌트를 사용함으로서 간단하게 구현이 가능하다.

 

유니티의 모든 컴포넌트들은 MonoBehavior이라는 클래스를 상속한다. 이 클래스는 컴포넌트에 필요한 기본 기능을 제공한다. 

 

또한 MonoBehavior 클래스를 상속한다면, 새로운 컴포넌트를 만드는 것도 가능하다.

 

브로드캐스팅

유니티에서는 브로드캐스팅을 통해 컴포넌트들의 독립성을 유지하면서도 동시에 특정 기능을 동작시킨다.

 

예를 들어 Eat()라는 메세지를 모든 컴포넌트에 전달하고 Eat()라는 기능을 가진 컴포넌트들만 해당 기능을 실행하는 방식이다.

 

이러한 브로드캐스팅은 유니티 이벤트 메서드가 동작하는 원리이기도 하다.

 

예를 들어 Start() 메서드는 게임 오브젝트가 처음 활성화될때 자동으로 브로드캐스팅되며 실행된다.

 

이렇게 이름 철자만 동일하게 구현해두면 메세지에 의해 자동으로 실행되는 메서드를 유니티 이벤트 함수(메서드)라고 한다.

 

'Unity' 카테고리의 다른 글

[Unity] 유니티 필요한 에디터 버전 문제 해결  (0) 2022.11.05