UE4笔记-异步蓝图节点 (UBlueprintAsyncActionBase)
记录备查:
基于的UBlueprintAsyncActionBase类可实现异步蓝图节点
-------------------------------------------------------------------------------
例子:
.h
UCLASS() class MYPROJECT_API UBPAsyncNode_Custom : public UBlueprintAsyncActionBase { GENERATED_BODY() public: DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FBPPin_Result, const TArray<FString>&, Datas); /** 输出针脚1 */ UPROPERTY(BlueprintAssignable) FBPPin_Result OnSuccess; /** 输出针脚2 */ UPROPERTY(BlueprintAssignable) FBPPin_Result OnFailure; public: /** 蓝图节点:负责NewOBject 蓝图节点(创建工厂模式) */ UFUNCTION(BlueprintCallable, meta = (BlueprintInternalUseOnly = "true", WorldContext = "WorldContextObject", Category = "Biz API")) static UBPAsyncNode_Custom* CustomAsyncBPNode(UObject* WorldContextObject); protected: // UBlueprintAsyncActionBase interface /** 程序通过(运行)节点是调用 */ virtual void Activate() override; //~UBlueprintAsyncActionBase interface };
.cpp
UBPAsyncNode_Custom* UBPAsyncNode_Custom::CustomAsyncBPNode(UObject* WorldContextObject) { UBPAsyncNode_Custom* Ins = NewObject<UBPAsyncNode_Custom>(); return Ins; } void UBPAsyncNode_Custom::Activate() { //测试逻辑----开新线程,延迟一秒后随机调用成功或失败委托 Async(EAsyncExecution::ThreadPool, [&]() { FPlatformProcess::Sleep(1.0f); int32 result = FMath::RandRange(1,100); TArray<FString> arr; if (result > 50) { this->OnSuccess.Broadcast(arr); } else { this->OnFailure.Broadcast(arr); } }); }
使用:
Note:
容器类类结果必须是
const YourClass &
如例子的TArray容器
DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FBPPin_Result, const TArray<FString>&, Datas);
否则报错
Signature Error: XXXX does not match the necessary signature
本文原创,不定时更新
可以随意转载到任何网站
~但是~ 转载也要按“基本法”
请注明原文出处和作者
分类:
UE4
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理