2024-09-26

컴포넌트 구조에서 전체 방송 을 이용해 컴포넌트의 특정 기능을 간접적으로 실행할 수 있다.
이 때의 전체 방송 을 Broadcasting 이라고 부른다.
유니티의 모든 컴포넌트의 기반이 되는 MonoBehaviour 클래스이다.
MonoBehaviour 를 상속해서 만들어진 컴포넌트는 유니티의 제어를 받게 되고,
이 제어는 Unity 의 Message 를 통해 이루어진다.
유니티는 발동시키고 싶은 기능의 이름을 담아 메시지를 전송시키고,
메시지를 받은 오브젝트가 메시지에 명시된 기능을 가지고 있으면
해당 기능을 실행한다.
이처럼 무차별적으로 여러 오브젝트에 동시에 뿌리는 방법을 브로드 캐스팅 이라고 한다.
이러한 방법을 통해 특정 오브젝트를 직접 가리키지 않고 (찾아낼 필요 없이)
원하는 기능을 수행하게 할 수 있다.
메시지와 브로드 캐스팅을 통해
유니티의 생명 주기 함수인 Start, Update 등의 유니티 이벤트 메서드(MonoBehaviour 를 상속 받음) 가 동작하는 원리를 이해할 수 있다.
Ex) Start : 게임 오브젝트가 활성화될 때, 유니티가 해당 게임 오브젝트에 Start 라고 적힌 메시지를 브로드캐스팅한다.
- Start 메서드를 수동으로 실행(호출)할 필요가 없다.
MonoBehaviour 에서 제공하는 메서드인
SendMessage( ), BroadcastMessage( ) 에 대해 알아보자.
하나의 게임 오브젝트에 붙어 있는 모든 컴포넌트 중 지정된 함수를 찾아 호출
public void SendMessage(string methodName,
object value = null,
SendMessageOptions options = SendMessageOptions.RequireReceiver);
해당 게임 오브젝트의 자식 오브젝트까지도 메시지를 보내 해당 메서드를 찾아 호출
public void BroadcastMessage(string message,
object parameter = null,
SendMessageOptions options = SendMessageOptions.RequireReceiver);
장점
단점