[UE4]多播代理

1. 第一种

DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FReceiveDelegateEvent, FString, Value1, FString, Value2);

UPROPERTY(BlueprintAssignable, Category = "Event")
FReceiveDelegateEvent  ReceiveDelegateEvent;
UFUNCTION(BlueprintCallable, Category = "My|MyActor")
void BroadcastToBluePrint(FString value1, FString value2);

void AMyActor::BroadcastToBluePrint(FString value1, FString value2)
{
  this->ReceiveDelegateEvent.Broadcast(value1, value2);
}

 

2.第二种

.h

// Fill out your copyright notice in the Description page of Project Settings.  
  
#pragma once  
  
#include "UObject/NoExportTypes.h"  
#include "Kismet/BlueprintAsyncActionBase.h"  
#include "MyObject.generated.h"  
  
/** 
 *  
 */  
UCLASS()  
class TTTTT_API UMyObject : public UBlueprintAsyncActionBase  
{  
    GENERATED_BODY()  
      
public:  
  
    DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FTestDelegate, FString, Content, int32, StatusCode);  
  
    UFUNCTION(BlueprintCallable, Category = "MyObject")  
        static UMyObject* DDDelegate(FString url,  FString Content);  
  
    UPROPERTY(BlueprintAssignable)  
        FTestDelegate OnSuccess;  
  
    UPROPERTY(BlueprintAssignable)  
        FTestDelegate OnFail;  
private:  
    void DDUseDelegate(bool bSucceeded);  
};  

.cpp

// Fill out your copyright notice in the Description page of Project Settings.  
  
#include "TTTTT.h"  
#include "MyObject.h"  
  
UMyObject* UMyObject::DDDelegate(FString url, FString Content)  
{  
    UMyObject* Helper = NewObject<UMyObject>();  
  
    return Helper;  
}  
  
void UMyObject::DDUseDelegate(bool bSucceeded)  
{  
    if (bSucceeded)  
    {  
        OnSuccess.Broadcast("",0);  
    }  
    else  
    {  
        OnFail.Broadcast("", 1);  
    }  
}  

转载于:https://www.cnblogs.com/timy/p/8683949.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值