-
[Unreal] unreal callback by delegate - 언리얼 콜백 만들기쾌락없는 책임 (공부)/Unreal 2022. 8. 21. 22:11반응형
서론 - 본론은 아래 코드에
유니티의 C#에서는 델리게이트가 애초에 언어 기본 내장이기도 하고 Action 등의 키워드도 있어서 콜백을 구현하는게 어렵지 않았습니다. 그런데 이 언리얼에서는 어떻게 이걸 구현해야할지 몰랐고 엔진에서 만든 델리게이트가 있음은 알고 있지만 이를 제대로 사용하는 방법을 몰랐습니다.
이 그래서 이 콜백에 삽질을 좀 하게 되었고 여러 사이트를 돌아다니면서 델리게이트를 통해서 콜백을 만드는 방법을 알아내 간단하게 코드만 공유하도록 하겠습니다. 추후 델리게이트와 관련한 이야기들을 많이 공부한다면 이와 관련해서도 글을 써 보겠습니다.
델리게이트로 콜백 만들기
<상황>
NPC와의 대화 상황이 있고 Player는 대화중 멈추고 NPC를 바라봐야 합니다. 이후 대화가 끝나면 플레이어는 다시 움직일 수 있어야 합니다.
- NPC.h
DECLARE_DELEGATE(FCallbackVoidWithNoArg) UCLASS() class PRACTICERPG_API ANPC : public AActor { GENERATED_BODY() //... public: virtual void InteractWithPlayer(FCallbackVoidWithNoArg& Callback); }
- NPC.cpp
void ANPC::InteractWithPlayer(FCallbackVoidWithNoArg& Callback) { // TODO : callback function UE_LOG(LogTemp, Warning, TEXT("Dialogue : %s"), *Dialogue); Callback.ExecuteIfBound(); }
- Player.cpp
FCallbackVoidWithNoArg Callback; Callback.BindUObject(this, &ARPGPlayer::AfterInteractionWithNpc); TracingNpc->InteractWithPlayer(Callback);
반응형'쾌락없는 책임 (공부) > Unreal' 카테고리의 다른 글
[Unreal] 언리얼 Anim Montage가 재생되지 않을 때 - Unreal Anim Montage not playing (0) 2022.11.05 [Unreal] GarbageCollection.cpp 에러, Invalid object in GC 에러 (0) 2022.11.05 [Unreal] 언리얼 TObjectPtr에서 UFUNCTION 사용 불가 (0) 2022.11.04 [Unreal] Unreal Engine 5 TObjectPtr (2) 2022.09.20 [Unreal] 언리얼 visual studio 자동완성 느린 문제 (0) 2022.02.26