首先就是创建一个Widget BluePrint. 
然后在Event Graph 里面

然后创建一个函数

内容如下

针对这个Get Current Health Percentage 这个纯函数就是我的BP_ActorBaes通过之前的Cast to 调用过来的。
(如何创建纯函数)

我的角色属性全部保存在一个Actor Component 里面


然后将这个控件变量调用到角色受到伤害或者被治疗之后加载进去,如图:

如果你在除了Widget 以外的地方调用不了这个更新Health 的函数,那么就在你的Main UI 里面加载这个类似我创建的WBP_HealthBar控件,然后将这个控件在Main Ui 里面设置成变量就行了。


下面给各位看看 如果用Binding 和不用Binding 的功能区别。

然后是不用Binding

区别就是任何有Bar 的数据,那么虚幻系统会按照每一秒计算一直不断的检测刷新。当然在2D项目其实还好,如果是3D。这样只会大量消耗你的程序资源。我们只需要按照自己的程序需求。只有在触发事件的时候才进行检测和同步更新。以上。有其他更好办法的欢迎分享。