2023년 1월 1일
08:00 AM
Buffering ...

최근 글 👑

Unity Engine 동작 원리 - 컴포넌트 #1

2023. 10. 17. 13:07ㆍUnity
반응형

컴포넌트

게임 오브젝트는 게임 세상에 존재하는 하나의 물체이다.

유니티는 게임 오브젝트를 컴포넌트 패턴을 사용해 제작한다.

 

컴포넌트 패턴 또는 컴포지션 패턴이란 미리 만들어진 부품을 컴포넌트라 부르며

컴포넌트는 각자 대표 기능을 가지고 있다.

 

컴포넌트 여러개 만들기

예를 들어 동물을 만든다고 가정하자.

 

컴포넌트 주머니

 

프로그래머는 기획자가 요청한 부품을 구현해 놓는다.

예를 들어 날개라는 컴포넌트는 하늘을 나는 능력이 있다.

 

게임 오브젝트 생성

빈 오브젝트를 생성한다.

이 오브젝트의 이름은 물고기라고 가정하자.

 

빈 게임 오브젝트

 

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

물고기 역할을 완성하기 위해서는 앞에 만들어 놓은 컴포넌트를 추가하기만 하면 된다.

 

컴포넌트를 추가한 오브젝트

이러한 방법이면 기획자 스스로 혼자 오브젝트를 제작할 수 있다.

 

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

컴포넌트 방식은 세가지 장점이 존재한다.

 

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

  • 상속만을 사용한 예제에서는 부모 클래스의 불필요한 기능까지 모두 가져와서 재사용이 힘든 경우가 존재한다.
    하지만 컴포넌트 방식에서는 원하는 기능을 골라 쓸 수 있다.

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

  • 미리 만들어진 컴포넌트를 조립하여 게임 오브젝트를 제작 가능하다.

독립성으로 인해 기능 추가와 삭제가 편리하다.

  • 코드의 한 부분만 수정하더라도 관련된 여러 부분의 코드가 망가질 수 있지만,
    컴포넌트 방식에서는 기능 추가와 삭제를 할 때 다른 기능이 망가지지 않아 걱정이 줄어든다.

컴포넌트의 독립성

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

  • 게임 오브젝트는 단순한 빈 껍데기에 불과하다.
  • 몇 가지 식별 기능과 자신에게 어떤 컴포넌트가 조립되어 있는지 알 수 있는ㄴ기능을 제외하면 특별한 기능이 없다.

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

  • 컴포넌트 자신과 게임 오브젝트에 추가된 다른 컴포넌트에 관심이 없다.
  • 이미 내부에서 완성되어 있기 때문.
  • 그러므로 서로 다른 컴포넌트에 의존하지 않아 안전하다.

참고 서적

레트로의 유니티 게임 프로그래밍 에선스

 

 

 

 

반응형

'Unity' 카테고리의 다른 글

C# 리스트  (55) 2023.10.28
Unity Engine 동작 원리 - 브로드 캐스팅  (62) 2023.10.19
Unity Engine 동작 원리 - 컴포넌트 #2  (56) 2023.10.18
Unity Engine 동작 원리 - 상속과 재사용  (65) 2023.10.12