【UE】UMG通信的三种方法

目录

前言

方法一:通过“获取类的所有控件”节点通信

方法二:当创建控件蓝图时传入其它控件蓝图的对象引用

*方法三:使用HUD类来管理UMG通信


前言

首先我们创建了三个控件蓝图,那么其中的一个控件蓝图如何与剩下的控件蓝图通信呢,这里介绍三种方法,其中最后一种方法是效果最好的,可以有效减少控件蓝图对象引用变量的创建。

 

方法一:通过“获取类的所有控件”节点通信

要实现一个控件蓝图如何与其它的控件蓝图通信,可以通过“获取类的所有控件”节点来获取到其它控件蓝图的对象引用

方法二:当创建控件蓝图时传入其它控件蓝图的对象引用

我们首先打开一个控件蓝图,并添加一些添加变量,变量类型为其它控件蓝图的对象引用,勾选“可编辑实例”和“生成时公开”

然后当我们实例化控件蓝图时可以将其它控件蓝图的对象引用作为参数传入,如下图,这样在控件蓝图“WBP_1”中就能使用“WBP_2”和“WBP_3”了

*方法三:使用HUD类来管理UMG通信

首先我们创建一个父类为HUD的蓝图,该蓝图主要用于管理和创建控件蓝图

这里命名为“MyHUD”

在世界场景设置中设置HUD类为“MyHUD”

再创建一个控件蓝图作为主界面,在游戏中主界面会包含其它所有界面,这里主界面命名为“WBP_Master”

打开“MyHUD”,在事件图表中创建主界面“WBP_Master”

打开“WBP_Master”,我们在“WBP_Master”中去添加其它子界面

此时我们再打开其中的一个子界面“WBP_1”,在事件图表中,我们可以通过获取玩家控制器来获取HUD,再将HUD转换为我们自己创建的“MyHUD”,通过“MyHUD”获取到主界面“WBP_Master”,最后通过主界面来获取到主界面中包含的各个子界面的对象引用。

参考链接:

https://www.bilibili.com/video/BV1KW4y1m7xP/?spm_id_from=333.999.0.0&vd_source=36a3e35639c44bb339f59760641390a8

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Zhichao_97

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值