UE4官方文档UI学习:6. UMG 使用菜单锚显示弹出菜单

最近开始学习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 使用菜单锚显示弹出菜单


本节要点

菜单锚
拿到引用的引用


创建了一个简单的 控件蓝图,名为 MenuPopUp,它由垂直框以及其中的三个按钮组成。
UE4官方文档UI学习:6. UMG 使用菜单锚显示弹出菜单
接下来,需要为库存菜单创建另一个控件蓝图,下文我们将其称为 Inventory。
创建了库存菜单后,您还要添加 菜单锚 控件(位于 基元 下方)。
然后,将菜单锚放置在希望其显示的位置。
UE4官方文档UI学习:6. UMG 使用菜单锚显示弹出菜单
在菜单锚的 详情 面板中,设置 菜单类(或要生成的控件蓝图)及其布置选项。
UE4官方文档UI学习:6. UMG 使用菜单锚显示弹出菜单
在“图表”选项卡上,为每个按钮添加 OnClick 事件,并拖动到菜单锚控件中。
拖动菜单锚,可以调用 打开 功能来打开并显示特定的菜单类。
UE4官方文档UI学习:6. UMG 使用菜单锚显示弹出菜单

创建了库存菜单后,需要通过某种方式在游戏中调用该菜单。
在FirstPersonCharacter的蓝图中,Create Widget选Inventory,并提升至变量
UE4官方文档UI学习:6. UMG 使用菜单锚显示弹出菜单
将 I 设置为在 Add to Viewport 和 Remove from Parent 之间切换,从而显示或隐去库存菜单。我们还将 Show Mouse Cursor 设为根据是否打开了库存菜单来启用或禁用。
UE4官方文档UI学习:6. UMG 使用菜单锚显示弹出菜单

最后,在 MenuPopUp 蓝图(您的弹出菜单)中,添加一些脚本,以便在玩家按下弹出菜单中的某个按钮时 关闭 菜单锚。下图中,当构建了弹出菜单后,Cast,然后将其提升为名为 MyCharacterReference 的变量,如此我们就得到了 MyCharacter 蓝图的引用。通过该引用就可以访问 HUD 。

UE4官方文档UI学习:6. UMG 使用菜单锚显示弹出菜单


实现效果:
UE4官方文档UI学习:6. UMG 使用菜单锚显示弹出菜单


参考资料:
https://docs.unrealengine.com/zh-CN/Engine/UMG/UserGuide/WidgetTypeReference/MenuAnchor/index.html