UE4 C++學習筆記 -- 動態委託與藍圖交互

一、動態委託的定義:

//動態委託
DECLARE_DYNAMIC_DELEGATE(FWDE_Dy_Sl_Zero);
//帶一個參數的動態多播
DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FWDE_Dy_Sl_One, FString, InfoStr);

二、綁定委託

使用的時候 只有 多播委託(MULTICAST) 可以作爲變量給藍圖綁定調用,普通委託不可以使用 BlueprintAssignable

UPROPERTY(BlueprintAssignable, Category = "FrameWork")
FWDE_Dy_Sl_One FDSZFun;

普通委託可以作爲函數參數使用:

//委託變量作爲參數
UFUNCTION(BlueprintCallable, Category = "FrameWork")
void RegFunDel(FWDE_Dy_Sl_Zero TargetFun);

三、調用委託

在需要的地方使用Boradcast()來調用委託

Void AFWDEActor::BeginPlay()
{
    Super::BuginPlay();
    
    // Broadcast()是ExecuteIfBound()的多播版本,不管是否添加了綁定,Broadcast()都可以被調用
    FDSZFun.Broadcast();
}

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章