0. 개요
델리게이트, 바인딩, 브로드캐스트, 콜백 함수는 UI, 애니메이션 구현, 데미지 로직 등 많은 부분에서 활용된다.
자세한 설명은 아래 포스트에서 잘 설명되어 있으니 참고한다.
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
동적 바인딩이고 멀티캐스트로 선언한다.
-> 블루프린트에서 호출 가능하고, 바인딩된 모든 함수를 한꺼번에 호출한다.