6. 使用HUD通信

在这个步骤中,我们会通过与角色蓝图进行通信来获得Pulls, Shots和Score中存储的值,从而更新显示于HUD控件蓝图的值。 为完成这个目标,我们使用 Cast (投射)节点来访问玩家的角色蓝图,然后绑定HUD中的属性到角色蓝图中的值,这样它们会在这些值在角色蓝图中进行更新时自动获取更新。

游戏快完成了,最后让我们更新一下HUD。

  1. 打开您创建的 HUD 控件蓝图

  2. 打开您的 HUD 控件蓝图中的 Graph (图表)选项卡。

    GraphClick.png

  3. 在图表中 右键点击 并添加 Event Construct (事件构建)节点。

    EventConstruct.png

    这个节点类似于 Event Begin Play (开始播放事件)节点,并且会在控件蓝图被构建时进行调用。

  4. 添加 Get Player Character (获取玩家角色)节点和 CastTo FirstPersonCharacter (投射到第一人称角色)节点。

    CastToFirstPerson.png

  5. As First Person Character (作为第一人称角色)引脚,选择 Promote to variable (添加为变量)并重命名新节点为 MyCharacter

    MyCharacter.png

    您可以通过选择变量并按下 F2 来从 MyBlueprint 窗口重命名变量。

  6. Designer (设计)选项卡,点击 Pulls 的值,然后在 详细信息 面板旁的 文本 处,点击 绑定 选项。

    Bind1.png

    这将会为绑定打开一个新的图表。

  7. 按住 Control 键,然后拖入 MyCharacter 变量,然后把 Get Pulls 连接到 Return Node (返回节点)的 Return Value (返回值)。

    GetPulls.png

    To Text (Int) 转换节点将会被自动创建。 我们现在已经可以正确显示Pulls的值。

  8. Designer (设计)选项卡,点击设置 Shots 的值,然后在 详细信息 面板,点击 绑定 选项并创建下方的绑定。

    GetShots.png

    这样将会更新并显示每次扣扳机时剩余的子弹数量。

  9. Designer (设计)选项卡,点击设置 Score 的值,然后在 详细信息 面板,点击 绑定 选项并创建下方的绑定。

    GetScore.png

    最终,它会在撞击到岩石时为玩家获取并显示合适的分数。

  10. 点击 编译保存 按钮,然后关闭蓝图

  11. 在主编辑器视图,点击编辑器中的 Play 按钮以播放。

    GameplayGIF.gif

行了;您的简单的射击场游戏已经完成了。 在这个指南中,我们学习了如何使用 Event Dispatcher (事件调度器)、 Cast (投射)节点和 Binding (绑定)来在三种不同类型的蓝图间通信。 我们学习了如何从关卡向角色蓝图传递信息,以及如何从角色向HUD进行变量通信。

在最后一步,您将会看到一些用来变更此项目的示例,您可以使用它们来完成自己的项目。 我们会给您提供一些链接,供您访问文档,从而了解本指南中的主题。