
【八、UMG UI设计器快速入门】- [3.暂停菜单UI]
19-11-08
茕兔QIONGTWO:UE4虚幻引擎学习云笔记-目录zhuanlan.zhihu.com

暂停菜单内容目标
UI安全区border:可用以限制UI安全区,本节用以灰色层覆盖提高菜单本身的视序。
PAUSE暂停:菜单标题,同时菜单控件具有暂停游戏的功能。
RESUME恢复按钮:返回游戏的功能。
OPTIONS按钮:与官方文档不同,我觉得应该添加的设置项,这样无需退出游戏去设置。
QUIT TO MAIN返回主菜单按钮:构成用户流程闭环,可以返回主菜单决定继续或退出。
1.暂停菜单布局
打开暂停菜单Pause Menu控件蓝图,根据前两节设置HUD与主菜单的认识,布局以下内容。

1)在暂停菜单垂直盒子里,设置有鼠标悬停视觉反馈的暂停菜单按钮组,包括:
PAUSE暂停标题,
RESUME恢复按钮,
OPTIONS按钮,
QUIT TO MAIN返回主菜单按钮。
暂停菜单垂直盒子设置:
ZOrder 设置1,保证其处于前端;
设置勾选 此为变量Is Variable,用以之后与设置菜单切换可显性。
2)从MainMenu主菜单控件蓝图中,复制设置项菜单OptionsMenu过来。
3)安全区Border,设置与主菜单背景封面类似,把颜色设置为半透明黑色。

2.编写暂停菜单程序脚本
功能目标如下:
目标1:游戏中按下M时,打开鼠标指针,打开暂停菜单UI,暂停游戏。目标2:退出暂停菜单时,执行什么程序。目标3:暂停菜单设置项等各按钮对应功能。
目标1设置:
游戏中按下M时,打开鼠标指针,打开暂停菜单UI,暂停游戏。
1)为实现按M的事件,打开第一人称角色FirstPersonCharacter蓝图,
新建键盘M键输入事件节点;创建控件Create Widget节点,设置为Pause Menu。

2)将返回值Return Value引出,提升为变量,命名变量为Pause Menu Reference。

3)为确保菜单有效、且有效时打开鼠标光标,需要判断暂停菜单是否开启,设置有效与否执行启动菜单控件、亦或打开鼠标光标程序。
将暂停菜单引用变量从变量菜单中获取,引出 是否有效Is Valid判断节点。

4)在暂停菜单控件未生效的时候创建暂停菜单控件,
将 无效Is Not Valid 输出至创建暂停菜单控件节点。

5)创建Get Player Controller节点,返回值输出引出、创建打开鼠标光标Set Show Mouse Cursor,在暂停菜单控件生效时,访问暂停菜单控件引用。
Is Valid的有效输出至打开鼠标光标Set Show Mouse Cursor节点,勾选打开鼠标光标显示的True勾。
打开鼠标光标节点输出新建设置输入模式为纯UI模式Set Input Mode UI Only节点,Get Player Controller节点输出至Player Controller输入,暂停菜单控件引用Pause Menu Reference变量输入至聚焦控件In Widget to Focus。

6)将暂停菜单输出至视口,并暂停游戏。
最后链接Add to Viewport节点,Set Game Paused节点并将Paused设置勾选Ture。

目标2设置:
设定退出暂停菜单时,执行何种程序。
1)两个退出暂停菜单控件的入口:Resume与Quit to Main。
打开PauseMenu控件蓝图,进入图表,
于变量中分别选择这两个按钮,创建点击事件,
并为暂停菜单控件获取玩家控制器操作创建Get Player Controller节点。

2)Resume按钮将回到游戏,需要在回到游戏时更换输入从纯UI模式到纯游戏模式,且关闭鼠标光标。
创建Set Input Mode Game Only节点,链接Get Player Controller让它获取玩家控制器。
再引出Get Player Controller创建 设置Show Mouse Cursor 节点,关闭Ture勾。

3)Quit to Main将返出至主菜单,需要关闭HUD控件,且打开主菜单所在的Main关卡。

创建RemoveHUD函数,将跳转至该函数控件蓝图。
创建Get Player Character,输出到转换至第一人称角色Cast to FirstPersonCharacter,
以访问第一人称角色蓝图中的HUD。

在按下QuittoMain事件后,加入以上设置的Remove HUD节点,移除HUD自身,Open Level节点设置到Main关卡。

3)最后两路程序都将暂停菜单移除,且关闭暂停程序。
创建Remove from Parent节点,移除目标为暂停控件自身;
创建Set Game Paused节点,不勾选设置为False。

目标3设置:
与先前主菜单设置的,切换UI组引用变量可显性、设置分辨率,逻辑一样。
从主菜单图表复制节点过来,更改切换可显性的变量为对应UI变量。

编译保存全部。

以上便实现了按M进入可以设置分辨率、回到主菜单的覆盖暂停菜单的UI功能。
至此, 完成了设立的UI交互功能目标,构建了一套基础的用户流程交互闭环UI系统。
以上。
接下来做一点UI设计。
【八、UMG UI设计器快速入门】- [4.字体问题]zhuanlan.zhihu.com

