目录
前言
方法一:通过“获取类的所有控件”节点通信
方法二:当创建控件蓝图时传入其它控件蓝图的对象引用
*方法三:使用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