最近开始学习UE4,整理了一下UE4的UMG官方文档的主要内容。
目录:
UE4官方文档UI学习:1.UMG UI设计器快速入门
UE4官方文档UI学习:2.UMG 创建主菜单
UE4官方文档UI学习:3.UMG 创建暂停菜单
UE4官方文档UI学习:4.UMG 创建控件模板
UE4官方文档UI学习:5.UMG 创建3D控件交互
UE4官方文档UI学习:6.UMG 使用菜单锚显示弹出菜单
UE4官方文档UI学习:7.UMG 用事件驱动UI更新
本节要点
批量对按钮的尺寸进行调整,并定义鼠标悬停时按钮的颜色。
设置图像
OnClicked事件设置
注意:细节中要勾选is variable才能在Graph中拖出来。
Open Level函数节点:加载关卡
Remove from Parent 函数节点:将自己从视口中移除
Set Visibility函数:进行隐藏/显示
Execute Console Command函数:进行分辨率的修改
Set Show Mouse Cursor节点,显示鼠标
Get Player Controller函数:获取玩家的输入
Set Input Mode Game Only:将玩家的输入设为仅限游戏(Game Only)。
创建并打开MainMenu 控件蓝图
层级设置如下:
![](https://i-blog.csdnimg.cn/blog_migrate/83bb40f8eecd3050eb408e85eeda9c22.png)
PlayBtn:打开关卡并移除自身的widget blueprint
![](https://i-blog.csdnimg.cn/blog_migrate/ea59cdf775a0d18ca61f5c3c4bd52e26.png)
OpenLevel节点:设为 FirstPersonExampleMap
Remove from Parent 节点:将从视口中移除 目标本身的 控件蓝图
OptionsBtn:隐藏MainMenu,并显示OptionsMenu
![](https://i-blog.csdnimg.cn/blog_migrate/8e79862519412790438ca8a95916c5a0.png)
SettingBtn:修改分辨率
Execute Console Command 节点中填写r.setRes XxY,其中X和Y是要使用的尺寸。
ReturnBtn:显示MainMenu,并隐藏OptionsMenu
逻辑跟OptionsBtn相反。
编译并保存
设置关卡蓝图
![](https://i-blog.csdnimg.cn/blog_migrate/57ef0ef2b38644528ad22eca448a869c.png)
Set Show Mouse Cursor 节点要打钩:
修改 Content/FirstPersonBP/Blueprints/First Person Character) 蓝图
进入游戏要关闭光标,并将玩家的输入设为仅限游戏(Game Only),增加如下设置:
分配游戏模式并更改玩家角色
我们不希望玩家能够在主菜单(Main Menu)后四处奔跑和射击,所以我们现在要为这张地图分配一个游戏模式,并更改玩家的角色,使其使用可玩的 第一人称角色(FirstPersonCharacter) 蓝图中的引擎默认角色。
![](https://i-blog.csdnimg.cn/blog_migrate/d246df3b2a4dcf721362a184a02e87b7.png)
在 游戏模式(Game Mode),将 游戏模式覆盖(GameMode Override) 设为 第一人称游戏模式(FirstPersonGameMode) 并将 默认Pawn类(Default Pawn Class) 更改为 角色(Character)。
上述是官方文档的流程,但我试了一下发现进游戏进不去:
![](https://i-blog.csdnimg.cn/blog_migrate/dfd8e3590ef71efc284707c3c12cdf3a.gif)
进入关卡就打开MainMenu,play按钮触发了就销毁自己进关卡,然后继续触发进关卡开MainMenu的逻辑,死循环了。
于是我断开了关卡蓝图里面创建MainMenu控件的链接,并通过G键在游戏运行打开MainMenu这套逻辑,设置如下:
![](https://i-blog.csdnimg.cn/blog_migrate/ddd5f9d21bfadefaf075d23d2a5c2cc8.png)
运行效果:
参考链接:https://docs.unrealengine.com/zh-CN/Engine/UMG/HowTo/CreateMainMenu/index.html