Game !

 


Unreal C++ 함수 콜백 종류

델리게이트
다이나믹 델리게이트
이벤트

델리게이트는 외부(C++)에서 연결해서 사용 가능
다이나믹 델리게이트는 BP와 연결하기 위해 사용 가능

이벤트는 자신의 클래스에 속해서만 사용 가능

 

 

 

 


델리게이트

C++ 에서만 사용할 수 있는 콜백 함수
2개의 타입이 있다 ( 싱글 / 멀티 )

바인딩할 경우, 인자랑 타입이 똑같아야한다.

더보기
델리게이트 생성

싱글
DECLARE_DELEGATE
DECLARE_DELEGATE_OneParam
DECLARE_DELEGATE_TwoParams
DECLARE_DELEGATE_<Num>Params
DECLARE_DELEGATE_RetVal
DECLARE_DELEGATE_RetVal_OneParam
...

멀티
위의 표준과 동일하다. 단, 멀티 표기를 해야한다.
DECLARE_MULTICAST_DELEGATE
DECLARE_MULTICAST_DELEGATE_OneParam
...
델리게이트 바인딩

싱글
전역 C++ 콜백일 경우
BindStatic 

표준 C++ 클래스 멤버 함수 콜백일 경우
BindRaw 

언리얼 오브젝트 클래스 멤버 함수 콜백일 경우
BindUObject 

UFUONCTION( ) 매크로가 붙어있는 멤버 함수 콜백일 경우
BindUFunction 

멀티
위의 표준과 동일하다. 단, Add 접두사를 사용.

전역 C++ 콜백일 경우
AddStatic 

표준 C++ 클래스 멤버 함수 콜백일 경우
AddRaw 

언리얼 오브젝트 클래스 멤버 함수 콜백일 경우
AddUObject

UFUONCTION( ) 매크로가 붙어있는 멤버 함수 콜백일 경우
AddUFunction
 

https://docs.unrealengine.com/4.27/ko/ProgrammingAndScripting/ProgrammingWithCPP/UnrealArchitecture/Delegates/
https://docs.unrealengine.com/4.27/ko/ProgrammingAndScripting/ProgrammingWithCPP/UnrealArchitecture/Delegates/Multicast/
델리게이트 실행

싱글
Excute

멀티
Broadcast

 

 

 


다이나믹 델리게이트


C++ 와 블루프린트 둘 다 연동해서 사용할 수 있다
( 에디터와 BP 와의 연동으로 사용됨 )
2개의 타입이 있다 ( 싱글 / 멀티 )

다이나믹 델리게이트에 콜백을 등록하기 위해서는, 콜백 함수에 UFUNCTION( ) 매크로가 꼭 있어야한다.

바인딩할 경우, 인자랑 타입이 똑같아야한다.
▶ 다이나믹 델리게이트일 경우 F12 로 찾아서 들어간다.
EX. 
1. OnActorBeginOverlap 에서 f12 를 눌러서 들어간다
2. OnActorBeginOverlap 의 자료형인 FActorBeginOverlapSignature 를 타고 들어간다.
3. 들어가면 여러 디파인이 있는데, 찾는 이벤트의 뒤에꺼를 복사해서 가져온다 (인자랑 타입)
4. 내가 만든 콜백 함수에 그대로 복사해서 넣는다.
더보기
다이나믹 델리게이트 생성

싱글
DECLARE_DYNAMIC_DELEGATE

멀티
DECLARE_DYNAMIC_MULTICAST_DELEGATE
다이나믹 델리게이트 바인딩

싱글
BindDynamic

멀티
AddDynamic
다이나믹 델리게이트 실행

싱글 
Excute

멀티
Broadcast

https://docs.unrealengine.com/4.27/ko/ProgrammingAndScripting/ProgrammingWithCPP/UnrealArchitecture/Delegates/Dynamic/

 

 

 

이벤트

(C++ 에서만 사용가능한..듯?)

기본적으로 멀티캐스트이다
( 콜백을 1개만 등록하면 싱글이라고 생각할 수 있음 )

등록된 콜백을 모두 한 번에 실행시킨다.

클래스 내부에서만 선언해서 사용한다
▶ 이벤트를 선언한 클래스만 델리게이트로 등록한 이벤트를 선언하고 호출할 수 있다.
더보기
이벤트 생성

DECLARE_EVENT
DECLARE_EVENT_OneParam
...
이벤트 바인딩
(멀티캐스트 델리게이트와 동일하다)

전역 C++ 콜백일 경우
AddStatic

표준 C++ 클래스 멤버 함수 콜백일 경우
AddRaw

언리얼 오브젝트 클래스 멤버 함수 콜백일 경우
AddUObject

UFUONCTION( ) 매크로가 붙어있는 멤버 함수 콜백일 경우
AddUFunction
이벤트 실행

Broadcast​

https://docs.unrealengine.com/4.27/ko/ProgrammingAndScripting/ProgrammingWithCPP/UnrealArchitecture/Delegates/Events/

 

 

 

 

 

 

 

 

 

'Unreal C++' 카테고리의 다른 글

[UE] 애니메이션 관련 정리  (0) 2022.06.20
[UE] USceneComponent 와 PrimitiveComponent  (0) 2022.05.09
[UE] Unreal C++ 스크립트 규칙  (0) 2022.05.07
[UE] 언리얼 오브젝트와 UClass  (0) 2022.05.01
[UE] 리플렉션  (0) 2022.04.30