1.必要项目设置

在此教程中,我们使用的是启用了 新手内容第一人称蓝图 模板。如您不清楚如何创建新项目和使用模板,请参阅 项目浏览器 页面了解详细信息。

  1. 内容浏览器 中点击 添加新内容 按钮,然后在 用户界面 下选择 控件蓝图 并将其命名为 HUD

    UMGQS1.png

    所有用户界面元素(HUD、菜单等)都将在控件蓝图中创建并且存放。利用控件蓝图可以在视觉上对 UI 元素进行布局,并为这些元素提供用脚本编辑的功能。我们现在正在打造此项功能,以便玩家角色出现在游戏世界中时显示,但我们会在以后进行设置。

    如需控件蓝图的更多信息,请查阅 控件蓝图 文档。

  2. 创建另外两个 控件蓝图,一个称为 主菜单,另一个称为 暂停菜单

    AllWidgets.png

  3. 内容浏览器右键单击,创建一个名为 主要关卡

    CreateLevel.png

    我们将在本指南的后面使用此功能进行主菜单设置。

  4. 内容浏览器 中,打开 Content/FirstPersonBP/Blueprints 文件夹中的 FirstPersonCharacter 蓝图。

    UMGQS2.png

    蓝图是可操纵角色的蓝图,我们将在这一蓝图中创建一些信息,传递给 HUD 控件蓝图进行显示。

  5. 我的蓝图 窗口中点击 添加变量 按钮。

    UMGQS3.png

  6. 在新变量的 细节 面板中,将变量命名为 Health,将变量类型改为 浮点型 并将 默认值 设为 1.0

    UMGQS4.png

    该变量将代表在 HUD 上显示的玩家角色的体力值。

  7. 另外创建一个名为 Energy浮点型 变量,并将 默认值 设为 1.0

    UMGQS5.png

    它代表在 HUD 上显示的玩家角色的能量值。

    无法输入默认值?从工具栏中点击 编译 按钮对蓝图进行编译,然后重试。

  8. 另外创建一个名为 Ammo整型 变量,并将 默认值 设为 25

    UMGQS6.png

  9. 再创建一个名为 MaxAmmo整型 变量,并将 默认值 设为 25

  10. 图表 窗口中,右键单击,然后添加一个 Event Begin Play 节点。

  11. 拖动 Event Begin play 节点,然后添加一个 设置成 HUD 控件蓝图Create Widget 节点。

    UMGQS7.png

  12. 关闭 创建 HUD_C 控件返回值,选择 提升为变量 并对 HUD 参考 进行命名。

    UMGQS8.png

    这样便会在游戏开始时创建 HUD 控件蓝图并将其储存为变量,供日后存取使用。在日后调用函数或设置属性时该变量会十分有用。举例来说,如果想要在游戏暂停时隐藏 HUD,可通过该变量访问 HUD。

  13. 拖动 Set 节点的输出针脚并添加 Add to Viewport 节点。

    UMGQS9.png

    正如节点名所示,这样做会把指定为目标的控件蓝图添加到玩家窗口中,把它拖动到屏幕上。

调整角色变量

在开始生成实际 HUD 之前,需要完成的最后一项工作是为角色变量提供一种变更方式。

  1. FirstPersonCharacter 蓝图中,长按 Alt 拖入 Energy 变量,把它放置在 Jump 脚本的旁边。

    Step2_1.png

  2. 长按 Ctrl 拖入 Energy 变量的一个副本,把它与一个设置为 0.25Float - Float 节点按如下连接方式连接起来。

    Step2_2.png

    角色每次跳跃时从角色的当前能量值中减去 0.25。

  3. Health 变量设置相同脚本,但使用 F 按键事件(或其他按键事件)进行测试。

    Step2_3.png

    这样做可测试按下按键时 Health 变量能否在 HUD 中正确显示。

  4. 找到 Spawn Projectile 脚本并跟随 InputAction Fire 事件,然后 右键单击 并添加一个 Branch 节点。

  5. Branch 条件而言,按住 Ctrl 拖入与设置为 0Integer > Integer 变量相连的 Ammo 变量,并按如下方式进行连接。

    Step2_4.png

    这样,仅在玩家的弹药量大于零时才能发射射弹。

  6. Spawn Projectile 脚本的后面紧跟着的是 Play Sound at Location 节点,将 Ammo 设为等于 Ammo - 1

    Step2_5.png

    这样,在玩家每次发射射弹之后,弹药量便会减去 1,并在 HUD 上显示出来。

  7. 编译保存,然后关闭蓝图

在下一步,我们将设置 Health、Energy 和 Ammo 变量在 HUD 上的显示,让它们在游戏中正常工作。