【UE】UMG通信的三种方法

news/2024/7/3 0:53:51

目录

前言

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

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

*方法三:使用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


http://lihuaxi.xjx100.cn/news/1717112.html

相关文章

BadNets:基于数据投毒的模型后门攻击代码(Pytorch)以MNIST为例

加载数据集 # 载入MNIST训练集和测试集 transform transforms.Compose([transforms.ToTensor(),]) train_loader datasets.MNIST(rootdata,transformtransform,trainTrue,downloadTrue) test_loader datasets.MNIST(rootdata,transformtransform,trainFalse) # 可视化样本 …

Elasticsearch:使用 Open AI 和 Langchain 的 RAG - Retrieval Augmented Generation (三)

这是继之前文章: Elasticsearch:使用 Open AI 和 Langchain 的 RAG - Retrieval Augmented Generation (一) Elasticsearch:使用 Open AI 和 Langchain 的 RAG - Retrieval Augmented Generation (二&…

Docker 启动远程服务访问不了

今天一下午在弄这个 1、防火墙是否关了 firewall-cmd --state2、ip转发开没开 sysctl net.ipv4.ip_forward3、service iptables是不是打开并拦截了 4、检查docker启动的端口号是否一致,或者启动时对不对 5、检查docker的服务是否起来了,比如你的端口号…

【Java】泛型擦除机制

擦除机制:将一个List集合 泛型 赋值给一个没有使用到泛型List集合,直接去除泛型 示例代码 package com.collection.Demo06;import java.util.ArrayList; import java.util.List;/*** 泛型擦除机制*/ public class Test06 {public static void main(Stri…

怎么禁止U盘拷贝电脑资料

怎么禁止U盘拷贝电脑资料 现如今U盘已经成为了人们日常传输文件的主要方式之一,U盘在给我们提供便利的同时,也带来了一些安全隐患,比如U盘可以轻松地复制电脑文件,这可能会导致机密信息泄露。因此,本文将介绍一些方法…

Sharding-JDBC-5.0.0 实现按月分表、自动建表、自动刷新节点

1、引入Maven 依赖 <dependency><groupId>org.apache.shardingsphere</groupId><artifactId>shardingsphere-jdbc-core-spring-boot-starter</artifactId><version>5.0.0</version></dependency><dependency><groupI…

SpringBoot 全局请求拦截

方法一 在Spring Boot中&#xff0c;可以使用拦截器&#xff08;Interceptor&#xff09;来实现全局请求拦截。示例&#xff1a; 首先&#xff0c;创建一个拦截器类&#xff0c;实现HandlerInterceptor接口&#xff1a; import javax.servlet.http.HttpServletRequest; impo…

Java并发线程池原理源码深入分析与调优实战

一&#xff0c;开篇&#xff1a; java中提供了多线程设计的Api&#xff0c;为什么还要用线程池呢&#xff1f; 下来看两个例子&#xff1a; 1. 使用多线程跑十万次 2. 使用线程池跑十万次 使用多线程跑十万次 package com.laoyang.ThreadPool.公开课;import java.util.ArrayL…