UE5 - 角色耐力系统实现详解1(制作体力条UI并与角色体力值绑定)
作者:hangge | 2026-09-11 09:31
我之前写过文章演示如何实现角色走路与跑动的切换(点击查看),而在实际的游戏中我们还会添加一个耐力值系统,奔跑时角色体力会逐渐下降,当降为 0 时则不能奔跑需要等待恢复。要实现这一功能,第一步需要制作体力槽 UI 并与角色体力值绑定,下面演示具体实现过程。









一、制作体力槽 UI 并与角色体力值绑定
1,准备工作
(1)前面我们实现了一个血条 UI 并与角色生命值绑定功能,下面我在其基础上增加一个体力槽 UI 功能:
(2)打开前面我们创建好的“BP_ControlledCharacter”角色蓝图,在“我的蓝图”面板中创建两个“浮点”型变量,一个是“CurrentStamina”,另一个是“MaxStamina”,这两个变量分别代表了角色当前耐力值和最大耐力值,并且这两个变量的默认值都设置为 100.0。

2,制作耐力条
(1)打开前面创建的“UI_PlayerStatus” 控件蓝图,拖曳一个新的“进度条”子控件到原来的血条进图条控件下面。

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

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

(4)前文中我们已经新建一个“BP_ControlledCharacter”类型的变量并命名为“Character”,在“细节”面板中也勾选此变量的“可编辑实例"”与“生成时公开”选项。接下来,我们可以利用此变量玩家的当前耐力并输出在 U 进度条上。

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

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

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

(2)编译并保存后进入 PIE 运行模式,可以看到左上角除了红色血条外,还多了一个黄色的耐力条。

(3)按 9 键后耐力会减少。
全部评论(0)