UE5

UE Delegate

우대비 2023. 3. 29. 17:37
반응형

언리얼에서는 C#에서와 같이 델리게이트라는 기능이 있음

delegate는 위임하다 라는 뜻을 가지고 있는데

이 뜻과 같이 함수의 실행을 위임하는 역할을 한다고 생각하면 됨

 

델리게이트 매크로의 종류

// 델리게이트에서 하나의 처리 함수만 등록할 수 있음
DECLARE_DELEGATE(DelegateName)

// 델리게이트에 여러 개의 처리 함수를 등록할 수 있음
DECLARE_MULTICAST_DELEGATE(DelegateName)

// C++클래스와 블루프린트 둘 다에서 함수 등록할 수 있음
DECLARE_DYNAMIC_DELEGATE(DelegateName)

// 델리게이트에서 하나의 처리 함수를 등록하면서 하나의 지정한 타입의 parameter를 보낼수 있음
DECLARE_DELEGATE_OneParam(DelegateName, Param1Type)

// MULTICAST, DYNAMIC, OneParam, TwoParams 등을 조합해서 
// 원하는 형태의 델리게이트를 만드는 것 이 가능함
DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam( DelegateName, Param1Type paramName)

 

델리게이트는 매크로로 생성이 되는데 위와 같은 방식으로 델리게이트를 생성할 수 있음

 

일반 델리게이트

delegate 생성 후, 선언 + 테스트용 함수 선언

 

함수를 델리게이트에 바인드(함수를 위임)하는 방법은 다양함

1. 함수 자체를 보내기

2. 함수 이름을 보내기

3. 람다식으로 만들어서 보내기

 

 

다이나믹 델리게이트

오류가 뜨지만 빌드에 문제는 없음

Dynamic Delegate를 만들때에는 UFUNCTION() 붙여줘야함

 

위와 같이 Bind 할 수 있음

 

멀티캐스트 델리게이트

 

사용법

델리게이트에 함수를 바인드하고 2초후 PlayDelegate함수가 실행

 

FNAME을 받는 델리게이트를 생성했으므로 인자로 TEXT를 보내며 실행

 

입력 받은 FName을 출력

 

반응형
LIST