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

최근 글 👑

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

2023. 10. 18. 13:01ㆍUnity
반응형

유니티 에디터에서의 컴포넌트

 

인스펙터 창을 통해 확인할 수 있는 큐브 오브젝트의 컴포넌트 들이다.

 

큐브의 인스펙터

즉, 큐브 오브젝트는 큐브가 지닌 것이 아닌 컴포넌트에 의해 추가된 것이다.

 

큐는에는 컴포넌트를 추가, 삭제 모두 가능하며 특정 기능을 삭제해도,
다른 컴포넌트들을 정상적으로 동작한다. ( 독립성 )

 

메시지와 브로드 캐스팅

컴포넌트 구조에서는 브로드캐스팅을 이용해 컴포넌트의 특정 기능을 간접적으로 실행할 수 있다.

 

우선 브로드캐스팅이 가능한 원리를 이해가기 위해서는

모든 컴포넌트의 기반인 MonoBehaviour를 알아야 한다.

 

유니티 컴포넌트의 구조

모든 컴포넌트는 MonoBehaviour 클래스를 상속받는다.

 MonoBehaviour 클래스는 유니티에서 제공하는 클래스이며, 컴포넌트에 필요한 기본 기능을 제공한다.

즉,  MonoBehaviour를 상속한 클래스는 게임 오브젝트에 컴포넌트로 추가될 수 있다.

 

 MonoBehaviour를 상속해서 만든 컴포넌트는 유니티의 제어를 받게되고, 유니티의 메시지를 들을 수 있다.

 

 

메시지 기반 방식

컴포넌트 패턴에서 서로 다른 컴포넌트들은 독립적이다.

같은 게임 오브젝트에 추가되어 있어도 다른 컴포넌트에서 일부러 또 다른 컴포넌트를 찾아내기 전에는 알 수 없다. 

또한 게임 오브젝트에 어떤 컴포넌트가 추가되었는지 모두 파악하지 않기 때문에 어떠한 컴포넌트 기능을 실행 하고 싶다면 메시지를 날린다.

 

메시지 방식은 다음과 같은 특징이 있다.

  • 메시지를 보내는 쪽은 누가 받게 될지 신경 쓰지 않습니다.
  • 메시지를 받은 쪽은 누가 보냈는지 신경 쓰지 않습니다.
  • 메시지를 받았을 때 메시지에 명시된 기능을 가지고 있다면 실행, 없다면 무시한다.

이러한 방식으로 메시지를 여러 오브젝트에 동시에 뿌리는 방법을 브로드 캐스팅이라고 한다.

 

참고 서적

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

 

 

반응형

'Unity' 카테고리의 다른 글

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