|
本页面的内容:
描述
详情
使用示例
描述
此控件用于指定一个位置,弹出菜单将从此处调出并被锚定在此处。
详情
在已放置的 菜单锚 的 细节 面板中,有一系列与此控件相关并可以进行设置的特定选项:
选项
描述
菜单类调用菜单时生成的控件蓝图(弹出窗口)。每次都重新创建控件。布置几个布置选项,用于确定所创建的控件的位置。OnGetMenuContent通过将功能或属性绑定到 OnGetMenuContent 事件(调出弹出窗口时会调用该事件),实现对弹出窗口的自定义(请参阅下文)。OnMenuOpenChanged通过将功能或属性绑定到 OnMenuOpenChanged 事件(菜单的打开状态发生变化时调用该事件),实现对弹出窗口的自定义。
对于 OnGetMenuContent 事件,您可以直接从 详情 面板创建并绑定功能,只要调用菜单锚,就会调用该面板。这用于为弹出菜单的创建过程提供额外的功能。例如,下图我们运行了一项检查来确定玩家是否“正在战斗”,如果没有,则允许他们访问弹出菜单。如果正在战斗,则不允许他们访问弹出菜单。
蓝图功能
菜单锚控件拥有一些控件特有的功能,这些功能可以通过脚本进行调用,下文进行介绍。
选项
描述
关闭如果菜单当前已打开,则关闭菜单。获取菜单位置返回菜单在世界空间中的位置。有打开的子菜单返回菜单是否有打开的子菜单。是否打开检查目标菜单锚当前是否已打开,并返回布尔值。打开如果菜单当前已关闭,则打开菜单。应在点击时打开返回菜单是否可通过点击打开。切换打开此功能可切换菜单的打开状态,并可以用于代替打开/关闭。使用示例
若您想要创建库存菜单并在玩家点击物品时显示弹出菜单,请参阅以下示例。
首先您要创建弹出菜单的外观。
上图我们创建了一个简单的 控件蓝图,名为 MenuPopUp,它由垂直框以及其中的三个按钮组成。
接下来,需要为库存菜单创建另一个控件蓝图,下文我们将其称为 HUD。
创建了库存菜单后,您还要添加 菜单锚 控件(位于 基元 下方)。
然后,将菜单锚放置在希望其显示的位置,在本例中,我们将其放置并锚定在右边/中间的位置。
在菜单锚的 详情 面板中,设置 菜单类(或要生成的控件蓝图)及其布置选项。
在“图表”选项卡上,为每个按钮添加 OnClick 事件,并拖动到菜单锚控件中。
拖动菜单锚,可以调用 打开 功能来打开并显示特定的菜单类。
选中 焦点菜单 选项时,会在菜单锚周围添加外框,这是一个可选项。
创建了库存菜单后,需要通过某种方式在游戏中调用该菜单。
可以选择通过 关卡蓝图 或(在我们的示例中)通过默认 Pawn 类(将其设为使用 MyCharacter 蓝图)调用。
在上述 MyCharacter 蓝图中,当游戏开始时,我们创建 HUD 控件并将其保存为名为 HUDWidget 的变量,这样,我们就可以在以后访问该控件。然后,将 I 设置为在 Add to Viewport 和 Remove from Parent 之间切换,从而显示或隐去库存菜单。我们还将 Show Mouse Cursor 设为根据是否打开了库存菜单来启用或禁用。
最后,在 MenuPopUp 蓝图(您的弹出菜单)中,添加一些脚本,以便在玩家按下弹出菜单中的某个按钮时 关闭 菜单锚。下图中,当构建了弹出菜单后,我们 投射 它,然后将其提升为名为 MyCharacterReference 的变量,如此我们就得到了 MyCharacter 蓝图的引用。通过该引用就可以访问 HUD
您可能想要为弹出菜单中的每个按钮添加一些功能,在按下按钮时,会调用这些功能(而不是输出到屏幕上)。例如,按下第一个按钮“使用”库存中的物品,按下第二个按钮“丢弃”物品,按下第三个按钮“取消”操作并让玩家返回到库存菜单。
这只是一个示例,您也可以更改菜单锚开启的条件。除了按下按钮,也可以使用 IsHovered 功能来确定光标是否悬停在某个对象上,然后打开菜单锚和弹出窗口,以便显示工具提示或其他形式的通知。无论是哪种情况,您都可以开始通过脚本来实现使用菜单锚显示/隐去弹出控件。
相关页面
UMG UI 设计器用户指南
样式设置
槽
|
|