6. 使用HUD通信
在这个步骤中,我们会通过与角色蓝图进行通信来获得Pulls, Shots和Score中存储的值,从而更新显示于HUD控件蓝图的值。 为完成这个目标,我们使用 Cast (投射)节点来访问玩家的角色蓝图,然后绑定HUD中的属性到角色蓝图中的值,这样它们会在这些值在角色蓝图中进行更新时自动获取更新。
游戏快完成了,最后让我们更新一下HUD。
打开您创建的 HUD 控件蓝图。
打开您的 HUD 控件蓝图中的 Graph (图表)选项卡。
在图表中 右键点击 并添加 Event Construct (事件构建)节点。
这个节点类似于 Event Begin Play (开始播放事件)节点,并且会在控件蓝图被构建时进行调用。
添加 Get Player Character (获取玩家角色)节点和 CastTo FirstPersonCharacter (投射到第一人称角色)节点。
在 As First Person Character (作为第一人称角色)引脚,选择 Promote to variable (添加为变量)并重命名新节点为 MyCharacter 。
您可以通过选择变量并按下 F2 来从 MyBlueprint 窗口重命名变量。
在 Designer (设计)选项卡,点击 Pulls 的值,然后在 详细信息 面板旁的 文本 处,点击 绑定 选项。
这将会为绑定打开一个新的图表。
按住 Control 键,然后拖入 MyCharacter 变量,然后把 Get Pulls 连接到 Return Node (返回节点)的 Return Value (返回值)。
To Text (Int) 转换节点将会被自动创建。 我们现在已经可以正确显示Pulls的值。
在 Designer (设计)选项卡,点击设置 Shots 的值,然后在 详细信息 面板,点击 绑定 选项并创建下方的绑定。
这样将会更新并显示每次扣扳机时剩余的子弹数量。
在 Designer (设计)选项卡,点击设置 Score 的值,然后在 详细信息 面板,点击 绑定 选项并创建下方的绑定。
最终,它会在撞击到岩石时为玩家获取并显示合适的分数。
点击 编译 和 保存 按钮,然后关闭蓝图。
在主编辑器视图,点击编辑器中的 Play 按钮以播放。
行了;您的简单的射击场游戏已经完成了。 在这个指南中,我们学习了如何使用 Event Dispatcher (事件调度器)、 Cast (投射)节点和 Binding (绑定)来在三种不同类型的蓝图间通信。 我们学习了如何从关卡向角色蓝图传递信息,以及如何从角色向HUD进行变量通信。
在最后一步,您将会看到一些用来变更此项目的示例,您可以使用它们来完成自己的项目。 我们会给您提供一些链接,供您访问文档,从而了解本指南中的主题。