最近开始学习UE4,整理了一下UE4的UMG官方文档的主要内容。
目录:
本节要点
批量对按钮的尺寸进行调整,并定义鼠标悬停时按钮的颜色。
设置图像
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 控件蓝图
层级设置如下:
![UE4官方文档UI学习:2.UMG 创建主菜单 UE4官方文档UI学习:2.UMG 创建主菜单](https://image.shishitao.com:8440/aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzU4Ni84M2JiNDBmOGVlY2QzMDUwZWI0MDhlODVlZWRhOWMyMi5wbmc%3D.png?w=700&webp=1)
PlayBtn:打开关卡并移除自身的widget blueprint
![UE4官方文档UI学习:2.UMG 创建主菜单 UE4官方文档UI学习:2.UMG 创建主菜单](https://image.shishitao.com:8440/aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzYyL2VhNTljZGY3NzVhMGQxOGNhNjFmNWMzYzRiZDUyZTI2LnBuZw%3D%3D.png?w=700&webp=1)
OpenLevel节点:设为 FirstPersonExampleMap
Remove from Parent 节点:将从视口中移除 目标本身的 控件蓝图
OptionsBtn:隐藏MainMenu,并显示OptionsMenu
![UE4官方文档UI学习:2.UMG 创建主菜单 UE4官方文档UI学习:2.UMG 创建主菜单](https://image.shishitao.com:8440/aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzIyNC84ZTc5ODYyNTE5NDEyNzkwNDM4Y2E4YTk1OTE2YzVhMC5wbmc%3D.png?w=700&webp=1)
SettingBtn:修改分辨率
Execute Console Command 节点中填写r.setRes XxY,其中X和Y是要使用的尺寸。
ReturnBtn:显示MainMenu,并隐藏OptionsMenu
逻辑跟OptionsBtn相反。
编译并保存
设置关卡蓝图
![UE4官方文档UI学习:2.UMG 创建主菜单 UE4官方文档UI学习:2.UMG 创建主菜单](https://image.shishitao.com:8440/aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzU3Mi81N2VmMGVmMmIzODY0NDUyOGFkMjJlY2E0NDhhODY5Yy5wbmc%3D.png?w=700&webp=1)
![UE4官方文档UI学习:2.UMG 创建主菜单 UE4官方文档UI学习:2.UMG 创建主菜单](https://image.shishitao.com:8440/aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzgzNy9mYjMzN2E0NWVjZDg5NWQ4ZjFkMzNhYTI3ZmQ5ZDUwZC5wbmc%3D.png?w=700&webp=1)
修改 Content/FirstPersonBP/Blueprints/First Person Character) 蓝图
进入游戏要关闭光标,并将玩家的输入设为仅限游戏(Game Only),增加如下设置:
分配游戏模式并更改玩家角色
我们不希望玩家能够在主菜单(Main Menu)后四处奔跑和射击,所以我们现在要为这张地图分配一个游戏模式,并更改玩家的角色,使其使用可玩的 第一人称角色(FirstPersonCharacter) 蓝图中的引擎默认角色。
![UE4官方文档UI学习:2.UMG 创建主菜单 UE4官方文档UI学习:2.UMG 创建主菜单](https://image.shishitao.com:8440/aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzMxMS9kMjQ2ZGYzYjJhNGRjZjcyMTM2MmExODRhMDJlODdiNy5wbmc%3D.png?w=700&webp=1)
在 游戏模式(Game Mode),将 游戏模式覆盖(GameMode Override) 设为 第一人称游戏模式(FirstPersonGameMode) 并将 默认Pawn类(Default Pawn Class) 更改为 角色(Character)。
上述是官方文档的流程,但我试了一下发现进游戏进不去:
![UE4官方文档UI学习:2.UMG 创建主菜单 UE4官方文档UI学习:2.UMG 创建主菜单](https://image.shishitao.com:8440/aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzY3NC9kZmQ4ZTM1OTBlZjcxZWZjMjg0NzA3YzNjMTJjZGYzYS5naWY%3D.gif?w=700&webp=1)
进入关卡就打开MainMenu,play按钮触发了就销毁自己进关卡,然后继续触发进关卡开MainMenu的逻辑,死循环了。
于是我断开了关卡蓝图里面创建MainMenu控件的链接,并通过G键在游戏运行打开MainMenu这套逻辑,设置如下:
![UE4官方文档UI学习:2.UMG 创建主菜单 UE4官方文档UI学习:2.UMG 创建主菜单](https://image.shishitao.com:8440/aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzU2OC9kZGQ1ZjlkMjFiZmFkZWZhZjA3NWQyM2QyYTVjMmNjOC5wbmc%3D.png?w=700&webp=1)
运行效果:
参考链接:https://docs.unrealengine.com/zh-CN/Engine/UMG/HowTo/CreateMainMenu/index.html