학습 매체 : 책
책이름 : 레트로의 유니티 게임 프로그래밍 에센스
저자 : 이제민
본 내용은 해당 강의 내용을 공부하면서 정리한 글입니다.
유니티는 게임 오브젝트를 컴포넌트 패턴을 사용해 만든다.
컴포넌트 패턴 혹은 컴포지션(Composition) 패턴이란 미리 만들어진 부품을 조립하여 완성된 오브젝트를 만드는 방식이다. 여기서 미리 만들어진 부품을 컴포넌트라고 부르며 컴포넌트는 저마다의 대표 기능을 지닌다.
기획자는 게임에 등장할 모든 동물을 사전에 기획할 수 없다. 게임 콘텐츠는 계속 달라지고 추가되기 때문이다. 따라서 프로그래머에게 동물이 아니라 동물에 사용할 다양한 종류의 부품을 미리 만들어달라고 요청하는 것이 더 현실적이다.
각 부품을 컴포넌트라 부르며, 컴포넌트마다 한 가지 능력을 가진다. 예를 들어, '날개' 컴포넌트는 하늘을 나는 능력을 제공한다.
먼저 코뿔소라는 게임 오브젝트를 생성한다. 이때, 코뿔소 게임 오브젝트는 내부가 비어 있다.
원하는 기능을 제공하는 컴포넌트를 찾아 게임 오브젝트에 붙여서 게임 오브젝트에 실질적인 기능을 부여한다.
컴포넌트 방식은 미리 만들어진 컴포넌트를 빈 껍데기인 게임 오브젝트에 조립하는 방식이다.
컴포넌트 방식에는 세 가지 장점이 있다.
1. 유연한 재사용이 가능하다.
- 상속만을 사용한 예제에서는 부모 클래스의 불필요한 기능까지 모두 가져오기 때문에 코드 재사용이 힘든 경우가 있었다. 컴포넌트 방식에서는 원하는 기능을 가진 컴포넌트만 선택적으로 골라 쓸 수 있다.
2. 기획자의 프로그래머 의존도가 낮아진다.
3. 독립성 덕분에 기능 추가와 삭제가 쉽다
- 컴포넌트 방식에서는 어떤 기능을 추가하거나 삭제할 때 다른 기능이 망가지지 않는다.
1. 게임 오브젝트는 단순한 빈 껍데기
2. 컴포넌트는 스스로 동작하는 독립적인 부품
- 게임 오브젝트에 어떤 컴포넌트를 마음대로 조립하거나 빼도 다른 컴포넌트가 망가지지 않는다.
다음 강의에서 계속~