当前位置: 首页 > news >正文

UE5.3 C++ 动态多播实战总结

一.遇到不得不用 广播的时候,以前当然也用过,用完就忘。但这次实战,发现确实好用,在特殊情况下,来加强记忆和经验,并不深入原理,重实战。

第一种情形,你的UI需要完成某种,信息通信后的响应。但你网络输入段,到你的widget。中间隔着无数个类,还跨模块。包含容易形成环形引用,这个时候就用动态多播。这里我使用在C++声明了动态多播事件,实现广播调用。响应事件是在蓝图里实现的。

1.声明一个动态多播委托 

DECLARE_DYNAMIC_MULTICAST_DELEGATE(FNoramlEvent);

在 声明动态 单播/多播 委托(DECLARE_DYNAMIC_DELEGATE/DECLARE_DYNAMIC_MULTICAST_DELEGATE)时,DelegateName 参数必须以字符 'F' 开头,否则编译无法通过。

 最好时声明所有委托时,DelegateName 参数都以字符 'F' 开头,这样就没有问题了

2.定义委托

	UPROPERTY(BlueprintAssignable)FNoramlEvent NormalEvent;

因为要在蓝图里实现委托,所以要加UPROPERTY(BlueprintAssignable);

在Widget的逻辑里实现,广播后的UI响应逻辑。

二.一个参数的传递回调 也类似

1.声明委托 再定义委托

DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FMoveToQueryRowEvent, int32, MoveIndex);
	UPROPERTY(BlueprintAssignable)FMoveToQueryRowEvent MoveToQueryRowEvent;

2.委托

void UQueryRowWidget::MoveToQury()
{UDrawLineSubsystem* TPASystem = GetWorld()->GetGameInstance()->GetSubsystem<UDrawLineSubsystem>();if (!TPASystem) return;if (TPASystem->isRecalling == true){MoveToQueryRowEvent.Broadcast(MoveIndex);}
}

3.绑定

  • BindDynamic( UserObject, FuncName )

  • AddDynamic( UserObject, FuncName )

  • RemoveDynamic( UserObject, FuncName ) 解绑单个

  • Clear全部解绑

动态多播也支持使用Remove和Removeall,用法与多播一样

但这里并没有用到 多播的,多处响应的特点。

我在项目中也是使用的蓝图绑定的,多传了个参数值。

http://www.lryc.cn/news/618653.html

相关文章:

  • Mac M1探索AnythingLLM+Ollama+知识库问答
  • Flink Python API 提交 Socket 数据源的 WordCount 作业
  • 多轮问答与指代消解
  • 【Node.js从 0 到 1:入门实战与项目驱动】2.2 验证安装(`node -v`、`npm -v`命令使用)
  • 6深度学习Pytorch-神经网络--过拟合欠拟合问题解决(Dropout、正则化、早停法、数据增强)、批量标准化
  • 企业高性能web服务器(4)
  • 企业AI人工智能培训基础实战
  • 电子电路原理学习笔记---第5章特殊用途二极管---第2天
  • PaddlePaddle 模型训练技巧
  • Emscripten 指南:概念与使用
  • 《Qwen2.5-VL 》论文精读笔记
  • SpringMVC的原理及执行流程?
  • vue excel转json功能 xlsx
  • 如何简单捋一遍LLM结构
  • 【MAUI】在 .NET MAUI 中实现全局异常捕获的完整指南
  • 全国产飞腾d2000+复旦微690t信号处理模块
  • 「ECG信号处理——(23)基于ECG和PPG信号的血压预测」2025年8月12日
  • Android领域驱动设计与分层架构实践
  • 【Unity3D实例-功能-下蹲】角色下蹲(二)穿越隧道
  • 【vue(二)Vuex】
  • 解决微前端子应用嵌入后样式被覆盖
  • C++11语法(2)
  • python判断当天是否是当月最后一天
  • Python 常用的正则表达式
  • 未解决|服务的注册与发现|一个api怎么调用到另一个服务的API
  • Spring Boot部署万亿参数模型推理方案(深度解析)
  • gpt-5与gpt-5-fast
  • SQL 与 NoSQL 的核心区别
  • 力扣-739.每日温度
  • 高效解耦:自定义内核链表实现指南(简化版)