레트로의 유니티 게임 프로그래밍 에센스 - 3.2

Cosmos·2023년 3월 23일
0

학습 매체 : 책

책이름 : 레트로의 유니티 게임 프로그래밍 에센스

저자 : 이제민


본 내용은 해당 강의 내용을 공부하면서 정리한 글입니다.


3.2 컴포넌트 패턴 : 조립하는 게임 세상


  • 유니티는 게임 오브젝트를 컴포넌트 패턴을 사용해 만든다.

  • 컴포넌트 패턴 혹은 컴포지션(Composition) 패턴이란 미리 만들어진 부품을 조립하여 완성된 오브젝트를 만드는 방식이다. 여기서 미리 만들어진 부품을 컴포넌트라고 부르며 컴포넌트는 저마다의 대표 기능을 지닌다.


3.2.1 컴포넌트로 동물 만들기

  • 컴포넌트를 미리 여러 개 만들기

  • 기획자는 게임에 등장할 모든 동물을 사전에 기획할 수 없다. 게임 콘텐츠는 계속 달라지고 추가되기 때문이다. 따라서 프로그래머에게 동물이 아니라 동물에 사용할 다양한 종류의 부품을 미리 만들어달라고 요청하는 것이 더 현실적이다.

  • 각 부품을 컴포넌트라 부르며, 컴포넌트마다 한 가지 능력을 가진다. 예를 들어, '날개' 컴포넌트는 하늘을 나는 능력을 제공한다.


  • 빈 게임 오브젝트 생성하기

  • 먼저 코뿔소라는 게임 오브젝트를 생성한다. 이때, 코뿔소 게임 오브젝트는 내부가 비어 있다.

  • 게임 오브젝트는 빈 껍데기이며, 컴포넌트를 붙일 수 있는 뼈대나 홀더(Holder) 역할을 한다.

  • 코뿔소 게임 오브젝트 완성하기

  • 원하는 기능을 제공하는 컴포넌트를 찾아 게임 오브젝트에 붙여서 게임 오브젝트에 실질적인 기능을 부여한다.

  • 이런 식으로 코뿔소에 필요한 모든 컴포넌트를 찾아 추가하면 온전한 기능을 가진 코뿔소 게임 오브젝트가 완성된다.

3.2.2 게임 오브젝트와 컴포넌트 특징

  • 컴포넌트 방식미리 만들어진 컴포넌트를 빈 껍데기인 게임 오브젝트에 조립하는 방식이다.

  • 컴포넌트 방식에는 세 가지 장점이 있다.

1. 유연한 재사용이 가능하다.

  • 상속만을 사용한 예제에서는 부모 클래스의 불필요한 기능까지 모두 가져오기 때문에 코드 재사용이 힘든 경우가 있었다. 컴포넌트 방식에서는 원하는 기능을 가진 컴포넌트만 선택적으로 골라 쓸 수 있다.

2. 기획자의 프로그래머 의존도가 낮아진다.

3. 독립성 덕분에 기능 추가와 삭제가 쉽다

  • 컴포넌트 방식에서는 어떤 기능을 추가하거나 삭제할 때 다른 기능이 망가지지 않는다.

3.2.3. 컴포넌트의 독립성

  • 컴포넌트 패턴의 장점은 두 가지 특성에서 파생된다.

1. 게임 오브젝트는 단순한 빈 껍데기

2. 컴포넌트는 스스로 동작하는 독립적인 부품

  • 게임 오브젝트에 어떤 컴포넌트를 마음대로 조립하거나 빼도 다른 컴포넌트가 망가지지 않는다.

다음 강의에서 계속~

profile
게임 개발을 목적으로 공부하고 있는 대학생입니다.

0개의 댓글