[유니티 C# 기초 강의] 12. 델리게이트

2016. 8. 3. 13:53· Frontend/Unity


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


서론

델리게이트라는 것은 함수에 대한 참조라고 생각하면 됩니다. 하나의 델리게이트로 여러 함수들에 접근해 실행할 수 있습니다. 또한 델리게이트를 이용해 함수를 파라미터로 전달할 수 있고, 여러 함수를 한꺼번에 실행하는 체인 기능과, 어떤 상황에 도달했을 때, 이벤트를 발생시키는 델리게이트 이벤트도 제공되어집니다.



델리게이트 기본 사용법

델리게이트는 기본적으로 함수와 형태가 같게 만들어집니다. 아래 delegate 를 보면 참조할 AddNumbers와 SubNumbers 함수의 형태와 같은 것을 볼 수 있습니다. 그리고 참조변수와 같기 때문에 객체를 생성합니다. 괄호 안에는 참조할 함수를 넣는 것입니다.











실행하면 AddNumbers 를 참조하는 delegate에 값을 넣었기 때문에 더하기 연산을 수행합니다.









델리게이트 활용 - 함수 넘기기

Csharp 에서는 델리게이트를 이용해 함수를 넘길 수 있습니다.



위와 같이 GetAction 함수의 파라미터에는 델리게이터를 통해 함수를 참조로 넘기게 됩니다.









new Calculator(AddNumbers)로 함수의 참조 객체를 전달하여 출력된 값은 더하기 연산입니다.









델리게이트 활용 - 델리게이트 체인

하나의 델리게이트가 여러 함수를 참조하여 델리게이트 객체를 한번 실행함으로서 등록된 모든 함수를 같이 실행할 수 있습니다.






위와 같이 델리게이트를 하나 만들고 += 연산을 통해 참조를 여러개 연결할 수 있습니다.










결과를 보면 3개의 함수가 묶여서 한번에 실행된 것을 볼 수 있습니다.











델리게이트 활용 - 델리게이트 이벤트

어떠한 조건이 만족되었을 때, 자동으로 함수를 호출하게 하는 델리게이트 이벤트를 사용해보도록 하겠습니다. C# 프로퍼티에 대한 이해가 요구되니, 이전 포스팅을 참조하시고 오길 바랍니다.






 큐브를 5번 클릭하면 큐브의 색이 빨강으로 변하는 예제입니다.  프로퍼티 set 접근자를 이용해서 Hp가 50 이하로 내려가면 이벤트에 연결된 함수들을 실행하는 것 입니다.













5번 클릭하게 되면 상자의 색이 변하고 색상을 print 해주는 결과를 볼 수 있습니다.









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

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

[유니티 기초] Time.deltaTime  (7) 2016.08.04
[유니티 트랜스폼] 이동 (Move)  (5) 2016.08.04
[유니티 실전 예제] 씬 전환  (10) 2016.08.04
[유니티 디버깅] ⑥ 에디터 디버깅  (0) 2016.08.03
[유니티 디버깅] ④ 시각적 디버깅  (0) 2016.08.03
[유니티 디버깅] ③ 플래그를 이용한 디버깅  (0) 2016.08.03
'Frontend/Unity' 카테고리의 다른 글
  • [유니티 트랜스폼] 이동 (Move)
  • [유니티 실전 예제] 씬 전환
  • [유니티 디버깅] ⑥ 에디터 디버깅
  • [유니티 디버깅] ④ 시각적 디버깅
에반황
에반황
"어른이면서 애이기도 하고 싶다."
에반황
에반, 어른반
에반황
전체
오늘
어제
  • 전체보기 (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# 기초 강의] 12. 델리게이트
상단으로

티스토리툴바

단축키

내 블로그

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

블로그 게시글

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

모든 영역

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

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