Delegate 란?
현재 수업시간에 C++에서 충돌감지 컴퍼넌트에서 AddDynamic 매크로를 동해, 충돌시 등록한 CallBack함수를 호출하는식으로 진행하였다.

우선 Delegate를 함수 시그니처와 비교하였다.

보통 FBoxLightOverlap 이 델리게이트 매개변수라고 보면되고,
OnBoxLightBeginOverlap이 호출형인데,
보통 호출할 때
OnBoxLightBeginOverlap.IsBound() 이런식으로 호출하게 되는 것
여기서, Single과 Multi의 차이점
호출해서 실행할 때
Single : Execute() 함수를 쓰고,
Multi : BroadCast() 함수를 쓴다.
또한 해제할 때는,
Single : UnBind() 함수를 쓰고,
Multi : Clear() 함수를 쓴다.
이렇게 차이가 있으며,

UFUNCTION으로 바인딩을 직렬화를 해주고,

BeginPlay()에서 호출해주는식.
단, Multi는 여러개의 함수를 바인딩할수 있다는 차이가 있다.
Event : 블루프린트에서 사용할 수 있으며, 자식클래스에서도 재정의가 가능하다. (단, 전역으로 사용 불가능)
DECLARE_SPARSE_MULTICAST : 멀티캐스트와의 성능은 같지만, 메모리측에서 더 효율적으로 관리한다는 장점이 있다.