2.设置角色蓝图

技能水平:中等水平 checkpoint: editorqs

既然已经创建了要显示的控件蓝图,就可以在任意蓝图内创建 控件组件 并将该蓝图放置于关卡内,使其显示在游戏世界中。 控件组件中也可以设置要使控件显示在世界空间还是显示在屏幕空间(默认选项是世界)。

步骤

  1. 内容浏览器 中单击 添加新内容 按钮并选择 蓝图

    Actor_1.png

  2. 在弹出的菜单中选择 角色,然后将其命名为“3D_Menu”或者类似的名称。

    Actor_2.png

  3. 双击蓝图,在蓝图编辑器中打开它。

    Actor_3.png

  4. 单击 添加组件 按钮,然后查找并添加 控件 类型的组件。

    Actor_4.png

  5. 将组件命名为“MainMenu”,然后单击 编译保存 按钮。

  6. 在控件组件的 细节 面板中的 控件类 下面,将其设置为使用 MainMenu 控件蓝图

    Actor_5.png

  7. 可以调整 绘制尺寸 设置以增大控件的比例。

    Actor_6.png

    我们在此将 X 设置为 1200,将 Y 设置为 500

  8. 最大交互距离 选项用于决定玩家可以在多远的位置与控件进行交互。

    Actor_7.png

    我们将 最大交互距离 增加到 2000

  9. 同时,在控件 细节 面板的 渲染 下面,选中 双侧 选项。

    Actor_8.png

    这样就可以从后面看到该控件,而非只能从正面看到。

  10. 单击 事件图表 标签。

    Actor_9.png

  11. 在图表中 单击右键,查找并添加 Get Player Controller 节点。

    Actor_10.png

  12. 在图表中 单击右键,查找并添加 Set Input Mode Game and UI 节点。

    Actor_11.png

  13. 按照下面显示的方式将每个节点连接到现有的 Event Begin Play 节点。

    Actor_12.png

  14. 按住 Ctrl 并将 MainMenu 组件拖动到图表窗口中。

    Actor_13.png

  15. 拖动并按照下面显示的方式对 MainMenu 组件和 Get User Widget Object 进行连接。

    Actor_14.png

  16. GetPlayerControllerSet Show Mouse Cursor 拖动到 True 并按照下面显示的方式进行连接。

    Actor_15.png

    这会使我们关注指定的控件,同时启用鼠标光标,以便看到我们指向的位置。

  17. 单击 编译保存,然后关闭蓝图

  18. 内容浏览器 中,将蓝图拖动到您的关卡中。

    Actor_16..png

    可以使用 移动 (W)旋转 (E)缩放 (R) 按键任意改变 UI 在世界中的位置。

最终结果

现在,在编辑器中进行游戏时,可以在 3D 世界空间中看到于 UMG 中创建的 UI 控件。同时也应当可以将鼠标移动到菜单项上面,并使某一项突出显示。本示例解释了如何设置交互式 3D 菜单,但是您也可以通过相同的操作创建其他形式的 3D 控件,如体力条、键盘或其他您想在游戏世界中显示出来的交互式 UI 元素。