一、動態委託的定義:
//動態委託
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();
}