[UE] 델리게이트와 이벤트2022. 5. 9. 02:13
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
이벤트
(C++ 에서만 사용가능한..듯?)
기본적으로 멀티캐스트이다
( 콜백을 1개만 등록하면 싱글이라고 생각할 수 있음 )
등록된 콜백을 모두 한 번에 실행시킨다.
클래스 내부에서만 선언해서 사용한다
▶ 이벤트를 선언한 클래스만 델리게이트로 등록한 이벤트를 선언하고 호출할 수 있다.
더보기
이벤트 생성
DECLARE_EVENT
DECLARE_EVENT_OneParam
...
이벤트 바인딩
(멀티캐스트 델리게이트와 동일하다)
전역 C++ 콜백일 경우
AddStatic
표준 C++ 클래스 멤버 함수 콜백일 경우
AddRaw
언리얼 오브젝트 클래스 멤버 함수 콜백일 경우
AddUObject
UFUONCTION( ) 매크로가 붙어있는 멤버 함수 콜백일 경우
AddUFunction
이벤트 실행
Broadcast
'Engine > Unreal' 카테고리의 다른 글
[UE] UProperty / UFunction (0) | 2022.05.26 |
---|---|
[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 |