반응형
언리얼에서는 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)
델리게이트는 매크로로 생성이 되는데 위와 같은 방식으로 델리게이트를 생성할 수 있음
일반 델리게이트
함수를 델리게이트에 바인드(함수를 위임)하는 방법은 다양함
1. 함수 자체를 보내기
2. 함수 이름을 보내기
3. 람다식으로 만들어서 보내기
다이나믹 델리게이트
Dynamic Delegate를 만들때에는 UFUNCTION()을 붙여줘야함
위와 같이 Bind 할 수 있음
멀티캐스트 델리게이트
사용법
델리게이트에 함수를 바인드하고 2초후 PlayDelegate함수가 실행
FNAME을 받는 델리게이트를 생성했으므로 인자로 TEXT를 보내며 실행
입력 받은 FName을 출력
반응형
LIST
'UE5' 카테고리의 다른 글
UE C++ 함수를 블루프린트에서 오버라이드 (0) | 2023.03.30 |
---|---|
UE C++ Component를 블루프린트에서 추가하는 법 (0) | 2023.03.29 |
UE 타이머 C++ (0) | 2023.03.23 |
UE5 Navigation Invoker를 이용한 AI 길찾기 (0) | 2023.03.22 |
Collision Event를 C++에서 처리하는 법 (0) | 2023.03.21 |