[유니티 C# 기초 강의] 13. SendMessage와 BroadcastMessage

2016. 8. 5. 14:27· Frontend/Unity


이 글은 PC 버전 TISTORY에 최적화 되어있습니다.


서론

이번에는 SendMessage와 BroadcastMessage를 이용해서 오브젝트의 붙은 컴포넌트의 함수를 이름으로 호출하는 방법에 대해서 배워보도록 하겠습니다.



SendMessage


SendMessage("Function", SendMessageOptions.DontRequireReceiver);


위와 같은 명령어로 사용합니다. 이 오브젝트에 붙어 있는 모든 컴포넌트/스크립트에서 Function이라는 함수명을 찾아 실행합니다. 첫 번째 인자는 호출할 메소드의 이름이고, 두 번째 인자는 호출할 객체가 없을 때 어떻게 에러 처리할 지를 지정합니다. 자세한 내용은 여기를 참고하시길 바랍니다.



BroadcastMessage


BroadcastMessage("Function", SendMessageOptions.DontRequireReceiver);

이 함수는 SendMessage와 유사하나 게임 오브젝트의 모든 컴포넌트마다 지명한 함수를 부르고, 더해서 씬 계층상의 모든 자식 오브젝트와 그 자식 오브젝트의 모든 컴포넌트도 찾아서 실행합니다. 



리플렉션

일반적으로 우리는 클래스에 접근하기 위해 인스턴스를 생성하고 그를 통해 변수나 함수에 접근합니다. 그럴 필요 없이 SendMessage나 BrodcastMessage를 이용하면 오브젝트 간, 그리고 컴포넌트 통신이 매우 쉬워지는 것을 볼 수 있습니다. 하지만 이러한 편리함에는 단점이 따라오기 마련입니다. 두 함수에는 C#의 리플렉션이라는 기능이 담겨있는데, 문자열을 통해서 함수를 살펴보면서 무거운 연산을 수반합니다. 또한 함수명을 이용해 부르므로 선택적으로 부를 수 없다는 단점이 있습니다. 이는 다음에 델리게이트와 인터페이스를 이용한 이벤트 매니저를 통해서 해결해보도록 하겠습니다.







반응형
저작자표시 (새창열림)

'Frontend > Unity' 카테고리의 다른 글

[유니티 에셋번들 사용법] 2. 에셋번들의 생성 및 빌드  (15) 2016.11.25
[유니티 에셋번들 사용법] 1. 에셋번들이란?  (2) 2016.11.25
모노디벨롭에서 unsafe 모드 실행하기  (0) 2016.11.23
[유니티 트랜스폼] 카메라 추적 (Follow Cam)  (1) 2016.08.04
[유니티 트랜스폼] 회전 (Rotate)  (0) 2016.08.04
[유니티 기초] 유니티 생명주기 (Life Cycle)  (0) 2016.08.04
'Frontend/Unity' 카테고리의 다른 글
  • [유니티 에셋번들 사용법] 1. 에셋번들이란?
  • 모노디벨롭에서 unsafe 모드 실행하기
  • [유니티 트랜스폼] 카메라 추적 (Follow Cam)
  • [유니티 트랜스폼] 회전 (Rotate)
에반황
에반황
"어른이면서 애이기도 하고 싶다."
에반황
에반, 어른반
에반황
전체
오늘
어제
  • 전체보기 (118)
    • About (1)
    • Backend (5)
      • Django (3)
      • Spring (2)
    • Database (2)
      • 아키텍처 (0)
      • SQL (0)
      • Redis (2)
      • 코딩 테스트 (0)
      • 요구 사항 해결 (0)
    • Infra, Cloud (0)
      • AWS (0)
      • GoCD (0)
      • Docker (0)
      • Kubernetes (0)
      • Mesos Marathon (0)
    • Basic (34)
      • C (1)
      • C# (4)
      • C++ (1)
      • Java (9)
      • Javascript (6)
      • Typescript (5)
      • GO (0)
      • Python (4)
      • 프로그래밍 기초 (1)
      • 게임 디자인 패턴 (1)
      • 운영체제 (0)
      • 알고리즘 (2)
      • 자료구조 (0)
    • Computer Science (0)
    • Frontend (74)
      • Swift (1)
      • Unity (31)
      • Android (13)
      • Vue.js (2)
      • Phaser (1)
      • Cocos2D JS (2)
      • Cocos Creator (16)
      • Facebook Instant Game (8)
반응형

인기 글

최근 댓글

hELLO · Designed By 정상우.v4.2.2
에반황
[유니티 C# 기초 강의] 13. SendMessage와 BroadcastMessage
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.