UE4UI制作_MainMenu

本文介绍如何使用UE4设计游戏主界面与暂停菜单,包括利用UI控件实现开始游戏、选项设置等功能,以及在游戏中实现暂停、返回主菜单等交互逻辑。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(此类文章仅供自己复习回顾,很多知识点是自己的理解,可能会有不到位的地方)

一、MainMenu主界面的制作

Design:verticalbox和horizontalbox分别是垂直和水平box,在之中可以方便的对button进行位置调节,sizebox可以对自身的大小进行调节;针对每一个button都可以进行制作相应的事件功能,在下图的按钮中点击即可进入功能编写窗口


开始游戏即为openlevel命令,退出游戏即为quitgame命令非常简单,主要看一下option button的功能,涉及到打开另一个用户控件,先看一下节点:


非常线性的流程,去除原来的控件以免占据视口,然后创建新空间并且获得视口及玩家控制;

控件面板里的功能基本就这么多,再看看在主界面关卡里应该如何写关卡蓝图来实现运行该关卡后即可出现主UI。

第一步:关卡开始时创建主界面控件并获得视口及玩家控制,如图:


第二步:使玩家可以看见鼠标(这样才可以进行点击操作)并且是以ui模式去进行操作,如图:


第三步:对于在主ui里play按钮open的关卡,该关卡蓝图应该恢复游戏操作模式以及不能让鼠标显示,所以在主界面关卡逻辑上下面的一个关卡(即游戏关卡)则需要写一条功能来恢复上述二者,如图:


这样就可以在下一个关卡中进行游戏操作了。(ps:经测试,其实在第二个关卡里不写show mouse cursor这个节点只需要直接set input mode game only其实就可以了,鼠标并不会在第二个关卡里出现。)

二、游戏中暂停及返回主界面功能

创建一个pause控件,设计方面类似主界面模式:一个[Horizontal Box]框住所有,在下面加入[Vertical Box]并被[Size Box]包裹,在[Vertical Box]下添加button以及text(返回游戏、保存游戏、返回主菜单、退出游戏)。在项目设置的input里加入一个动作设定:pause——按p键时会触发该动作如图:


暂定游戏是针对游戏玩家,可以在玩家蓝图里进行该功能的制作,打开ThirdPersonCharacter,在左侧函数中添加两个新函数,PauseGame、UnpauseGame。

PauseGame:pausegame——f(set game paused)(调用函数使得游戏暂定)——is valid(进行判定以保证在按了p后pause控件已经出现游戏已经暂停时再按p键不会出现重复的创建控件pause,此时判定变量还没有获得,先空着)——create widget(选择pause控件,并且在返回值处提升为变量命名为pause,此处并没有像往常直接添加一个add to viewport,因为需要获得一个变量用于前面的is valid判断,若pause变量是有效的则说明已经经历过后面创建控件命令了,那么控件已经存在,则不需要创建,若无效则需要创建,所以is not valid处连接创建控件)如图:

创建控件返回值提升为变量后自然就是add to viewport,下面就是和主界面制作时一样的要求,设置输入模式为仅ui(set input mode ui only)以及显示鼠标(获得show mouse cursor(ps:该节点若是关联模式需在player controller连出))如图:


UnpauseGame:f(set game pasued)(调用函数不暂定游戏,不要勾选paused即可)——remove all widgets(去除所有的控件)——set input mode game only——获得show mouse cursor(不勾选show mouse cursor,不然鼠标会看见)如图:


两个自定义函数写好后就可以到角色蓝图的事件图标界面中:新建一个输入事件输入动作pause——PauseGame(应用PauseGame)(其实将PauseGame函数里的节点写在事件图表也可以,不过这样更好管理)如图:

这时已经实现了在游戏中按p键即暂定游戏并且会弹出pause控件的功能了,下面开始制作一些返回按键的功能。

Pause控件里的按钮:对于返回按钮即返回游戏,只需要对于clicked——UnpauseGame(当然无法再控件里直接引用该函数,因为该函数使自定义的,需要先类型转换为角色蓝图)如图:


保存按钮即示意:在左上方输出save game,并非真正保存。

返回主菜单:即openlevel(mainmenu)即可,退出游戏即quitgame节点即可,如图:


至此即可实现在游戏中暂停游戏并进行几个按钮的功能操作(返回游戏,返回主菜单,退出游戏)。

### 关于 UE4 中 UMG 的定义、功能与用途 #### 定义 UMG 是 Unreal Motion Graphics 的缩写,在虚幻引擎 4 (UE4) 中,它是一种用于设计用户界面 (UI) 的工具。具体来说,Blueprint (User Interface-Blueprint),即通常所说的 UMG,是用来创建 UI 工程文件的核心组件[^1]。 --- #### 功能 UMG 提供了一套完整的可视化编辑器来构建和管理用户界面元素。以下是其主要功能: 1. **拖放式布局设计** 开发者可以通过直观的拖放操作快速布置按钮、文本框、图像和其他 UI 组件。 2. **事件绑定支持** 可以为 UI 元素绑定交互逻辑,例如点击按钮触发特定动作或打开新窗口等功能。 3. **动态更新能力** 支持运行时修改 UI 属性,比如调整颜色、字体大小或者隐藏/显示某些控件。 4. **跨平台兼容性** 创建的 UMG 文件能够无缝适配多种目标设备屏幕尺寸及分辨率设置[^3]。 5. **资源集成便捷** 所有已创建完成的 Widget 都会被记录在 Project Browser 下方分类目录中的 “User Created” 节点下以便随时调用查看[^2]。 --- #### 用途 UMG 广泛应用于各类需要图形化展示的应用场景之中,特别是在游戏开发领域占据重要地位。它的典型应用场景包括但不限于以下几个方面: 1. **菜单系统制作** 构建主菜单、暂停菜单以及其他形式的功能选项卡页面等基础框架结构。 2. **HUD 显示面板定制** 设计并实现健康条、能量槽、迷你地图之类的实时反馈型 HUD 界面。 3. **过场动画控制台搭建** 编辑对话气泡提示框或是其他叙事驱动的内容呈现方式。 4. **虚拟键盘模拟器生成** 当针对触屏类硬件进行优化时尤为有用,可以提供输入法解决方案给移动版本产品使用。 通过上述描述可以看出,UMG 不仅简化了传统编程流程下的复杂度,还极大地提高了工作效率与创作自由度,成为现代游戏开发者不可或缺的好帮手之一。 --- ```python # 示例代码:如何加载一个 UMG Widget Blueprint 到游戏中 def load_umg_widget(): widget_class = LoadClass("/Game/UI/MainMenu.MainMenu_C") # 替换路径为你自己的 UMG 类名 new_widget = CreateWidget(widget_class, GetWorld()) if new_widget is not None: new_widget.AddToViewport() ``` ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值