1.1 - HUD示例

本示例展示了一个简单的游戏中的HUD,并包括了以基本的暂停菜单形式出现的可点击按钮。HUD上描画了生命条的材质,并使用了蓝图接口函数来从角色读取生命值,同时在目标处会出现标记,这个标记会附带目标名称以及其与玩家的距离。HUD蓝图可以在 内容浏览器 中通过搜寻 BP_HUD_Example 来获得。

游戏模式

游戏模式 设置了默认的Pawn类,HUD类,以及PlayerController类,另外还包含了游戏内特定的行为或设置。 本例中,GameInfo_HUD 蓝图即为设置 BP_HUD_Example 蓝图为HUD类的GameMode(游戏模式)蓝图,并且我们必须在 World Settings (世界设置)选项卡中将其设置为 GameMode Override (游戏模式覆盖)。

gamemode_hud.png

HUD

ReceiveDrawHUD 事件被用来描画HUD的每个元素,它使用X值和Y值来代表屏幕尺寸。这些值可以在之后通过蓝图来体现,使得不同的HUD要素可根据游戏屏幕尺寸来进行缩放和重新定位以确保完成目标,比如说让按钮在任何屏幕分辨率下都能保持在屏幕的中心位置。

生命条

BP_HUD_healthbar.png

生命条是在HUD蓝图的构建脚本中创建的动态材质实例。该材质包含了根据 Current Health (当前生命值)和 Maximum Health (最大生命值)标量参数而变更生命条长度的节点,以及基于角色当前生命值而更新 Current Health (当前生命值)参数的HUD蓝图。

掉落拾取

BP_HUD_pickup.png

本关卡中的掉落拾取对象为 BP_Pickup_Child_Health ,它也被同时在高级蓝图 - 子蓝图 内容示例中进行使用。它在关卡蓝图中被设置为 Objective (目标)变量。

在HUD蓝图中,如果 Current Objective (当前目标)为非空:

暂停菜单

BP_HUD_menu.png

在玩家按下 M 后,会打开暂停菜单。 PlayerController蓝图会随后对 Toggle Menu (打开菜单)功能执行接口信息。 此函数在 BPI_HUD_Interface_Events 的蓝图接口中被定义,同时还有设置目标拾取以及获取玩家角色生命值的函数。

在暂停菜单中出现的关键特性包括了:

玩家控制器

BP_HUD_pressM.png

BP_PlayerController_HUD 蓝图是本示例的默认PlayerController(玩家控制器)类,同时在 GameInfo_HUD GameMode(游戏模式)蓝图中进行了设置。尽管我们通过 BP_HUD_Example 蓝图来设置 Press "M" for Menu (按下M键来打开菜单)字符串,但PlayerController蓝图实际上设置了按下 M 键后的初始响应。

按下 M 键后,会执行 Toggle Menu (打开菜单)接口信息,并把HUD蓝图作为目标。PlayerController随后会进行下列操作: