ue4 umgui设计 生命值和能量条

ue4 umgui设计 生命值和能量条

在本案例中,在启用 初学者内容包(Starter Content) 的情况下使用了 蓝图第一人称(Blueprint First Person) 模板。

一.必要的项目设置

1.单击 内容浏览器(Content Browser) 中的 新增(Add New) 按钮,然后在 用户界面(User Interface) 下选择 控件蓝图(Widget Blueprint) 并将其命名为 HUD。

ue4 umgui设计 生命值和能量条
ue4 umgui设计 生命值和能量条

2.在 内容浏览器(Content Browser) 中,打开 Content/FirstPersonBP/Blueprints 文件夹下的 第一人称角色(FirstPersonCharacter) 蓝图。

ue4 umgui设计 生命值和能量条
3.在 我的蓝图(My Blueprint) 窗口中,单击 添加变量(Add Variable) 按钮。
ue4 umgui设计 生命值和能量条
4.在新变量的 详情(Details) 面板中,将其命名为 生命值(Health),将其更改为 浮点(Float) 变量类型,并将 默认值(Default Value) 设置为 1.0。

需先编译才能设置默认值

ue4 umgui设计 生命值和能量条
ue4 umgui设计 生命值和能量条
ue4 umgui设计 生命值和能量条
5.创建另一个名为 能量(Energy) 的 浮点(Float) 变量,并将其 默认值(Default Value) 设置为 1.0。
ue4 umgui设计 生命值和能量条
6.在 图表(Graph) 窗口中找到 Event Begin Play 节点。右键单击执行引脚并选择 拆分链接(Break Link to Branch)。
ue4 umgui设计 生命值和能量条

还可以在执行引脚上使用Alt+单击来断开它

7.拖出 Event Begin play,然后添加一个 Create Widget 节点,并将 类(Class) 设置为刚才创建的 HUD 控件蓝图。
ue4 umgui设计 生命值和能量条
8.拖出 Create HUD_C Widget 的 返回值(Return Value),选择 提升到变量(Promote to Variable) 并命名为 HUD引用(HUD Reference)。
ue4 umgui设计 生命值和能量条
ue4 umgui设计 生命值和能量条
9.拖出 Set 节点的输出引脚,并添加 Add to Viewport 节点。
ue4 umgui设计 生命值和能量条

这将把指定为目标的控件蓝图(本案例为HUD)添加到玩家视口中,并将其绘制在屏幕上。

二.调整角色变量

在开始生成实际的HUD之前,我们要做的最后一件事是提供一种用于更改我们角色变量的方法。

1.在 第一人称角色(FirstPersonCharacter) 蓝图中,当按住 Alt 时,拖入 能量(Energy) 变量,并将其放置在Jump脚本旁边

ue4 umgui设计 生命值和能量条
2.按住 Ctrl,拖入 能量(Energy) 变量副本,并将其连接到 Float - Float 节点,值设置为 0.25,连接方式如图所示。
ue4 umgui设计 生命值和能量条

每次角色跳跃时,将从角色的当前能量值中扣除0.25。

3.为 生命值(Health) 变量设置相同的脚本,但是使用 F 按键事件进行测试。

ue4 umgui设计 生命值和能量条

每次摁下F键时,将从角色的当前生命值中扣除0.25

三.显示生命值、能量值
1.打开 HUD 控件蓝图,访问 控件蓝图编辑器(Widget Blueprint Editor)。

ue4 umgui设计 生命值和能量条
2.在 面板(Panel) 下的 控制板(Palette) 窗口中,将 水平方框(Horizontal Box) 拖动到 层级(Hierarchy) 窗口中的 画布面板(CanvasPanel) 上。
ue4 umgui设计 生命值和能量条
3.同样在 面板(Panel) 下,将两个 垂直方框(Vertical Box) 拖动到 水平方框(Horizontal Box) 上。
ue4 umgui设计 生命值和能量条
4.在 常见(Common) 下,将两个 文本(Text) 控件拖动到第一个垂直方框上,将两个 进度条(Progress Bar) 拖动到第二个垂直方框上。
ue4 umgui设计 生命值和能量条
5.选择 水平方框(Horizontal Box),然后在图表中调整该框大小,并将其放置在窗口的左上角。

ue4 umgui设计 生命值和能量条
6.选择两个 进度条(Progress Bar),然后在 详情(Details) 面板中将它们的 大小(Size) 设置为 填充(Fill)。
ue4 umgui设计 生命值和能量条
7.选择包含进度条的 垂直方框(Vertical Box),并将其也设置为 填充(Fill)。
ue4 umgui设计 生命值和能量条
8.再次选择 水平方框(Horizontal Box),重新调整其大小,使进度条与文本对齐。
ue4 umgui设计 生命值和能量条
9.在 层级(Hierarchy) 窗口中选择最顶部的 文本(Text) 控件,然后在 详情(Details) 面板的 内容(Content) 下,输入 生命值:(Health:)。对另一个 文本(Text) 控件执行相同的操作,但将它标记为 能量(Energy)
ue4 umgui设计 生命值和能量条
ue4 umgui设计 生命值和能量条
10.选择生命值旁边的 进度条(Progress Bar),并在 详情(Details) 面板中,将 填充颜色和不透明度(Fill Color and Opacity) 设置一个颜色,能量值同理。
ue4 umgui设计 生命值和能量条

分配颜色时,进度条没有改变颜色。这是因为填充进度条的 百分比(Percent)
值被设置为0.0(可以先更改此值来测试一下颜色,不过我们并不会用到此值,因为稍后我们会将它链接到我们角色的生命值)。

ue4 umgui设计 生命值和能量条ue4 umgui设计 生命值和能量条

ue4 umgui设计 生命值和能量条ue4 umgui设计 生命值和能量条
四.脚本:生命值、能量值

1.在控件蓝图编辑器(Widget Blueprint Editor)窗口的右上角单击 图表(Graph) 按钮。
ue4 umgui设计 生命值和能量条
2.在 图表(Graph) 中的 Event Construct 节点下,右键单击 并添加 Get Player Character 节点。
拖出 返回值(Return Value) 引脚,并选择 **转换为第一人称角色(Cast to FirstPersonCharacter)
ue4 umgui设计 生命值和能量条
3.拖出 作为第一人称角色(As First Person Character) 引脚并选择 提升到变量(Promote to Variable)(将其命名为 我的角色(My Character)),然后进行连接,如下所示。

ue4 umgui设计 生命值和能量条
之后单击工具栏中的 编译(Compile) 以编译脚本。
4.返回 设计器(Designer) 选项卡,并选择 生命值(Health) 旁边的 进度条(Progress Bar)。
在 详情(Details) 面板中,在 进度(Progress) 下,单击 百分比(Percent) 旁边的 绑定(Bind) 选项,并将其设置为使用 我的角色(MyCharacter) 中的 生命值(Health)。
ue4 umgui设计 生命值和能量条

这将进度条(Progress Bar)的值绑定到 第一人称角色(First Person Character) 蓝图中的
生命值(Health) 变量。现在,每当我们的角色在蓝图中的生命值(Health)值发生更改时,会自动在我们的HUD中更新。

5.选择能量(Energy)旁边的 进度条(Progress Bar) 并重复上面的过程,将 百分比(Percent) 绑定到 我的角色(MyCharacter) 中的 能量(Energy)。
ue4 umgui设计 生命值和能量条
6.将制作好的生命值与能量值的图片文件导入至内容浏览器(Content Browser) 中
ue4 umgui设计 生命值和能量条
7.返回控件蓝图编辑器(Widget Blueprint Editor),在 常见(Common) 下,将两个 图形(Image)拖动到 层级(Hierarchy) 窗口中的 画布面板(CanvasPanel) 上。
ue4 umgui设计 生命值和能量条
8.选中 Image-1 在 详细(Details)面板下将brush下的Image设置为之前导入生命值的图片文件,Image-2则设置为能量条的图片文件
ue4 umgui设计 生命值和能量条
9.调整图片的大小与位置达成如下效果
ue4 umgui设计 生命值和能量条
10.单击 编译(Compile) 和 保存(Save),然后单击 运行(Play) 按钮以在编辑器中运行。
ue4 umgui设计 生命值和能量条

现在我们的生命值(Health)和能量(Energy)会显示在我们的HUD上,并反映我们角色蓝图中的当前值。按空格键会使角色跳跃并消耗能量,按F键会使我们失去生命值