UE5 - 角色血条系统实现详解1(制作血条UI并与角色生命值绑定)
作者:hangge | 2026-09-08 08:55
在 UE5 游戏开发中,角色血条是玩家与游戏世界互动最直观的视觉反馈之一。一套响应迅速、视觉效果明确的血条系统不仅能提升游戏体验,更是战斗机制的核心信息载体。本文将演示如何使用控件蓝图(UMG) 制作基础血条 UI,并实现与角色属性的动态绑定。













一、制作血条 UI 并与角色生命值绑定
1,准备工作
(1)首先我们需要准备一个可操作的角色,具体实现过程可以参考我之前写的文章:
(2)接着打开前面我们创建好的“BP_ControlledCharacter”角色蓝图,在“我的蓝图”面板中创建两个“浮点”型变量,一个是“CurrentHealth”,另一个是“ MaxHealth”,这两个变量分别代表了角色当前血量和最大血量。并且这两个变量的默认值都设置为 100.0。

(3)在“事件图表”面板中新建一个“事件任意伤害”节点,“事件任意伤害”节点就是接收伤害的节点,在接收伤害时设置自身的生命值为自生生命值减去伤害值。当剩余生命值 <=0 时触发自定义的死亡事件,该事件将生命值置为 0,同时将人物最大行走速度置为 0.0(不能移动),并在屏幕上打印出死亡信息。
提示:“事件任意伤害”节点是 Unreal Engine 5 中封装的事件节点,可以方便地对 Actor 类发送伤害并使 Actor 类接收伤害。

2,制作血条
(1)新建一个控件蓝图并命名为“UI_PlayerStatus”,双击打开“UI_PlayerStatus” 控件蓝图,在“控制板” 面板中拖曳一个“画布面板”子控件到屏幕中,再拖曳一个“进度条”子控件到屏幕的左上角。

(2)选择“进度条”子控件,在“细节”面板中设置“填充颜色和不透明度”为红色(R:1.0,G:0.01,B:0.0),这样进度条会显示为红色。

(3)这个进度条会显示玩家的当前血量。选择进度条,在“细节”面板中展开“百分比”右侧的“绑定”下拉列表,单击“创建绑定”按钮,绑定一个新函数。

(4)在这个绑定函数中新建一个“BP_ControlledCharacter”类型的变量并命名为“Character”,在“细节”面板中勾选此变量的“可编辑实例”与“生成时公开”选项后编译蓝图。我们可以在此变量中传入玩家,获取玩家的当前血量并输出在进度条上。

(5)在控件蓝图中添加“Character”变量,并连接“Current Health”与“Max Health”两个变量,使用“除”节点将两个变量相除后可以得到一个在 0~1 内的数字,再将这个数字连接到“Return Value”引脚。

3,关联角色与血条
进入“BP_ControlledCharacter”蓝图,连接“分支”节点和“事件开始运行”节点并使用“已控制玩家”节点连接“Condition”引脚,这样让只有“BP_ControlledCharacter”蓝图被控制器操纵时才生成 UI。接着使用“创建控件”节点连接“添加到视口”节点,设置“Class”为“UI Player Status”,用“Character” 引脚连接 “Selt” 节点(获得对自身的引用)。

4,运行测试
(1)为了方便测试,我们在“BP_ControlledCharacter”蓝图中添加如下逻辑,每次按下键盘数字键 9 后,血量会减少 30。

(2)编译并保存后进入 PIE 运行模式,可以看到左上角出现红色血条。

(3)按 9 键后血量会减少。

(4)当血量变为 0 时,屏幕中会打印死亡提示,并且角色不能再移动。

(5)如果我们再角色死亡时还添加了死亡动画(点击查看),那么血量变为 0 是角色还会播放死亡倒地动画。


全部评论(0)