UE5学习笔记 FPS游戏制作27 显示玩家血量
文章目录
- 添加最大血量
- 添加UI
- 绑定事件
- 添加玩家属性,并获取引用
- 绑定血量条
- 绑定当前血量
- 绑定最高血量
添加最大血量
在shooter蓝图里,添加一个MaxHealth属性,游戏运行的时候,由MaxHealth给Health赋值
将MaxHealth设置为100,Health设置为0,子类FppShooter和RobotShooter的Health也设置为0
构造函数类似于Unity的Awake,用来赋值数据
实测中发现的bug
1 对于ue4,子类不会自动调用父类的构造函数,需要右键子类的构造函数,选择下边这个,然后连线
2 对于UE5,子类会自动调用父类构造,但是如果是我们提前拖到场景里的角色,虽然函数会执行,但是任何打印信息都不会显示,用控制台生成的角色则会显式打印信息
3 必须确保调用了父类的构造函数,否则角色血量会是0,一出生就死亡
添加UI
在FppShooter里如下添加UI
一个血量条三个文本框,调整锚点到左下角
绑定事件
添加玩家属性,并获取引用
因为事件绑定和属性绑定时每帧更新,为了性能考虑,先获取一下玩家的引用,然后存起来
添加Player变量
事件图表里获取一下引用
绑定血量条
为进度条绑定获取血量比例的方法
绑定当前血量
当前血量使用属性绑定的方式,由于palyer中的health是float类型,不能直接绑定,所以新建一个healthText的变量,然后每帧修改healthText的值
变量:
修改值:
绑定到UI:
绑定最高血量
直接用函数绑定
运行后看到玩家血量减少