UE4和C++ 开发-C++与UMG交互3

打开一个游戏,最先进入眼帘的便是加载页面,然后便是ui界面,如开始游戏等等按钮。本文将介绍如何在UE4中将制作一个游戏菜单项。

1、在UE4中,有两种方式创建ui,一种是使用slate的方式,一种便是UMG

1.1、UMG是slate的封装,是一个可视化的ui编辑器,类似于mfc。

1.2、slate则是纯c++方式,本文将介绍UMG。

打开项目编辑器,创建一个基于c++的第三人称模板的项目。打开项目后,依次按照如下步骤。

1:新建一个level,选择empty level,即空的关卡,该关卡用来显示菜单。保存命名为MainMenuMap在Maps目录下。

2:在Content目录下的ThridPersonCpp下新建一个UI文件夹,在UI文件夹下新建Res目录。如下图:

3:在UI目录下新建一个蓝图控件,命名为MainMenu。如下图:

4:导入一张背景图,两张按钮图到res文件夹中。

5:打开MainMenu,拖入image控件,button控件。拖入HorizontalBox,为什么要这个box呢,是为了自适应屏幕。拖入三个sizebox和一个VerticalBox,如下图所示:

6:拖入3个button到VerticalBox里面去。加入sizebox调整宽度,高度等等。如下图:
7:在button加入textblock控件,并调整字体,颜色等等。如下图:

8:修改命名:将开始游戏按钮的命名改为StartGameBtn,即Button_241改为StartGameBtn,剩下的依次改为SettingBtn,QuitGameBtn。这一步骤相当重要。

9:创建类,继承UUserwidget,如下图:

9:编译后,打开类。编写类,还记得第8步说的命名吗,这个类的成员要跟那个命名一样。并且需要添加绑定函数,即单击按钮时的响应函数。(稍后会将代码完全贴出)

   

10:将按钮与函数绑定。重写bool Initialize函数。

11:编译后,将mainmenu蓝图控件的父类设为新建的c++类。如下图:
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/103139.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大数据学习(8)-hive压缩

压缩 在Hive表中和计算过程中,保持数据的压缩,对磁盘空间的有效利用和提高查询性能都是十分有益的。 Hive表数据进行压缩 在Hive中,不同文件类型的表,声明数据压缩的方式是不同的。 1)TextFile 若一张表的文件类型…

MVVM 与 MVC区别和应用场景?

MVVM 和 MVC 1. MVC2. MVVM 1. MVC MVC 是 Model View Controller 的缩写 Model:模型层,是应用程序中用于处理应用程序数据逻辑的部分。通常模型对象负责在数据库中存取数据。View:视图层,用户界面渲染逻辑,通常视图…

C#(Csharp)我的基础教程(三)(我的菜鸟教程笔记)-控件对象与窗体容器集合(Control)的探究与学习

目录 1、窗体类(主代码文件窗体设计器后台代码文件)2、控件对象与窗体容器集合(Control) 1、窗体类(主代码文件窗体设计器后台代码文件) 主窗体对象的创建:在Program类里面: Appli…

Spring Boot中的JdbcTemplate是什么,如何使用

Spring Boot中的JdbcTemplate是什么,如何使用 Spring Boot是一个流行的Java应用程序开发框架,它简化了Java应用程序的开发过程,并提供了丰富的功能和工具。在Spring Boot中,JdbcTemplate是一个强大的数据库访问工具,它…

【Python】PaddleOCR文字识别国产之光 从安装到pycharm中测试 (保姆级图文)

目录 官方项目地址Python环境搭建(也就是使用Anaconda的python)1. 安装Anaconda1. 打开终端并创建conda环境 安装PaddlePaddle(CPU演示)安装PaddleOCR whl包如果安装shapely库报错(我没有报错,其他类似库安…

acwing算法基础之基础算法--位运算算法

目录 1 知识点2 模板 1 知识点 (一) n的二进制表示中第k位是0还是1,注意k从0开始编号。 先把第k位移动到最后一位,即n >> k看个位是几,即x & 1 综合上述,即n >> k & 1。 &#xff…

01 初识FPGA

01 初识FPGA 一.FPGA是什么 FPGA(Filed Programmable Gate Array),现场可编程门阵列,一种以数字电路为主的集成芯片,属于可编程逻辑器件PLD的一种。 1.1 两大巨头 Xilinx(赛灵思)Altera(阿尔特拉&#…

VPN基础

1.VPN简介 VPN即虚拟专用网,泛指通过VPN技术在公用网络上构建的虚拟专用网络。VPN用户在此虚拟网络中传输私网流量,在不改变网络现状的情况下实现安全、可靠的连接。 专用:VPN网络是专门供VPN用户使用的网络,对于VPN用户&#xf…

geecg-uniapp 同源策略 数据请求 获取后台数据 进行页面渲染 ui库安装 冲突解决(3)

一,同源策略 (1)首先找到env 要是没有env 需要创建一个替换成后端接口 (2)因为他封装了 先找到 http 请求位置一级一级找 然后进行接口修改 (3)appUpdata 修改接口 运行即可 &#x…

【postgresql】

看到group by 1,2 和 order by 1, 2。看不懂,google,搜到了Stack Overflow 上有回答 What does SQL clause “GROUP BY 1” mean? 大概意思就是,group by, order by 后面跟数字,指的是 selec…

dockerfile 搭建lnmp+wordpress,docker-compose搭建lnmp+wordpress

目录 dockerfile 搭建lnmpwordpress 部署nginx(容器IP 为 172.18.0.10) 部署mysql(容器IP 为 172.18.0.20) 部署php(容器IP 为 172.18.0.30) docker-compose搭建lnmpwordpress dockerfile 搭建lnmpword…

STM32单片机采用环形缓冲区实现串口中断数据接收管理

一、前言 在嵌入式系统开发中,与上位机进行串口通信是非常常见的场景。上位机可以通过串口发送指令或者数据给嵌入式设备,而嵌入式设备需要可靠地接收并解析这些数据,以执行相应的操作。然而,在串口通信过程中,上位机…

c++的小指针

1,关于QByteArray的代码,以下说法正确的是? QByteArray bytes; bytes[0] 1; bytes[1] 2; bytes[2] 3; bytes[3] 4; A:编译通过,运行正常。 B:编译通过,运行时QT抛出异常导致程序退出…

Error: error:0308010C:digital envelope routines::unsupported

这个错误通常发生在使用 Node.js 中的 TLS/SSL 模块时。它表示在尝试建立 TLS 连接时,无法识别或不支持远程服务器所使用的加密协议。 可能的原因包括以下几点: 远程服务器使用了不安全的加密算法或协议,而最新版本的 OpenSSL 已经将其移除…

如何实现前端路由保护?

聚沙成塔每天进步一点点 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 欢迎来到前端入门之旅!感兴趣的可以订阅本专栏哦!这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发…

OpenCV实现图像傅里叶变换

傅里叶变换 dftcv.dft(img_float32,flagscv.DFT_COMPLEX_OUTPUT): flags:标志位,指定变换类型,cv.DFT_COMPLEX_OUTPUT会返回复数结果。 傅立叶变换,将输入的图像从空间域转换到频率域。 返回结果: 此函数返回一个复杂数值数组&#xff0c…

flutter 网络图片封装

可自定义加载时占位图片和加载失败时展示的图片 class ImageBuildView extends StatelessWidget {String? url;double radius;double? width;double? height;String placeholder;ImageBuildView({super.key,this.url,this.width,this.height,this.radius 50,this.placehol…

IOS 快速获取加密方法,加密数据

引言逆向过程中,被一个加密算法或者一段代码折磨。安卓没有办法,只能找IOS。 首先要看下,越狱检测能不能过,不过,然后看下几个屏蔽越狱的插件能不能行,如果可以,就可以走这条路。 实战先来这一段frida hook 代码: if (ObjC.available) {Interceptor.attach(Module.find…

初学者必看,前端 Debugger 调试学习

1.文章简介: 报错和Bug,是贯穿程序员整个编程生涯中,无法回避的问题。而调试,就是帮助程序员定位问题、解决问题的重要手段,因此调试是每个程序员必备技能。 调试本身可分为两个过程: 定位问题 和 解决问题&#xff0…

【开发心得】Java xsd文件转JavaBean

前言 最近又要对接友商老的系统,依然采用http xml方式的请求,客方提供了xsd,这里提供windows平台两种转换xsd文件为javaBean的方式。 方法一 : xjc 命令参考: "C:\Program Files\Java\jdk1.8.0_331\bin\xjc.exe" test.xsd -p com.test.im…