0. 개요

델리게이트, 바인딩, 브로드캐스트, 콜백 함수는 UI, 애니메이션 구현, 데미지 로직 등 많은 부분에서 활용된다.

자세한 설명은 아래 포스트에서 잘 설명되어 있으니 참고한다. 

 

[UE4] 델리게이트(Delegate)

델리게이트란? 자주 쓰는 프로그래밍적 기법 중에는 콜백이라는 것이 있죠. 어떤 함수를 직접 호출하는 게 아니라, 로직에 따라 원하는 타이밍에 호출할 수 있게 하는 기법입니다. 사실 C++는 언

delightlane.tistory.com

 

 

1. 델리게이트(Delegate)

특정 이벤트가 발생했을 때 수행할 작업을 다른 함수(바인딩 된 함수)에 위임하는 작동 방식.

 

- 싱글캐스트(Singlecast)

1개의 델리게이트 - 1개의 바인딩된 함수

 

- 멀티캐스트(Multicast)

1개의 델리게이트 - 여러 개의 바인딩된 함수

 

 

 

2. 바인딩(Bind, Binding)

이벤트가 발생했을 때 발동 될 함수(콜백 함수)를 연결하는 것.

-> 언리얼에서는 Add, AddUObject, AddLambda 등의 함수를 사용

 

- 정적 바인딩(Static Binding)

① 컴파일 타임에 정적으로 정의됨.

② 성능이 뛰어남

③ C++에서 사용가능(블루프린트 불가능)

 

- 동적 바인딩(Dynaminc Binding)

① 런타임에 동적으로 정의됨.

② 정적 바인딩에 비해 성능이 떨어짐

③ C++과 블루프린트에서 사용가능

 

 

3. 브로드캐스트(Broadcast)

델리게이트에 바인딩된 함수를 호출한다.

매개 변수가 있으면 바인딩된 모든 함수에 매개 변수를 넘긴다.

 

 

ex) 멀티캐스트

DECLARE_MULTICAST_DELEGATE_OneParam

델리게이트를 멀티캐스트로 선언하되 한 개의 매개 변수를 넘긴다.

-> C++에서만 호출 가능하고, 바인딩된 모든 함수를 한꺼번에 호출하며 한 개의 매개 변수를 전달한다.

 

ex) 동적 멀티캐스트

DECLARE_DYNAMIC_MULTICAST_DELEGATE

 

 

동적 바인딩이고 멀티캐스트로 선언한다.

-> 블루프린트에서 호출 가능하고, 바인딩된 모든 함수를 한꺼번에 호출한다.