UE4多播代理

来源:互联网 发布:阿里云取消手机绑定 编辑:程序博客网 时间:2024/06/10 21:46

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);}}



原创粉丝点击