大家好,我是很久不见,主要从事的方向是引擎美术。
本期文章使用虚幻引擎中制作一个有交互效果的血条,先来看一下最终完成的效果。

下面来说一下实现的过程。
1创建项目工程
首先创建一个第一人称的射击项目,这个是虚幻引擎自带的工程内容。

在模板里选择“第一人称游戏”,并创建项目。


2创建血条和攻击对象
首先新建一个控件蓝图。

把原有的画布面板删掉,用一个垂直框代替。

在垂直框中拖入文本和进度条。

把垂直框的大小设置为200*40。

适当修改一下文字的大小。

修改后的血条长这样。

然后新建一个蓝图类,类型选择Pawn。

在蓝图类的视口中添加一个圆柱体和一个控件组件。


选中控件组件,将刚才制作的血条界面放到用户界面的控件类中,绘制大小调整为与之前界面尺寸一致。

适当调整一下位置比例关系。

3血条与摄像机的相对旋转
首先创建一个自定义事件。

然后设置Widget的场景旋转。

Widget的旋转需要与摄像机的一致,这里用到了一个“寻找查看旋转”节点。

然后做了一个分支开关。

然后把这个自定义事件连给Tick,运行后就有了血条朝向摄像机的效果了。

4子弹伤害效果的实现
创建两个浮点类型的变量,总生命和当前生命值浮点都设置参数为100,并开启可编辑实例。


右键创建“事件任意伤害”,当前生命值减去伤害就是剩余的当前伤害数值了。

当生命值小于0时候,销毁组件。

这里有一个问题,就是当Widget组件销毁后,之前的摄像机与血条的旋转还没有停止,所以在这里做了一个分支用来切断刚才的Tick事件。

接下来需要把子弹的伤害数值给到对应的蓝图中。
在工程里找到枪和子弹的蓝图。

在子弹的蓝图中,修改了碰撞体的碰撞预设类型,并开启了“组件命中时”事件。

应用伤害,并设置了子弹的伤害数值。

打开枪的蓝图,此时会看到在开火事件中的从类生成Actor中,多了一个刚才设置的子弹伤害数值,拖出来并设置这个变量为20,开启可编辑实例。

回到刚才的血条界面里,应用刚才的伤害数值。
首先选中进度条,在百分比这里创建绑定。

获取类的Actor,选择刚才带血条的攻击对象蓝图,用当前生命除以总生命就是血条进度条的浮点数值,注意这里的进度百分比只能是0到1之间。

在文本内容这里也创建绑定。

把刚才的数值乘以100,就是当前血量的数值了。

最后直接运行就可以看到效果了。

以上就是本次案例的内容了。
本次案例是我的个人练习,如有不足之处,希望大家可以一起交流学习,一起变得更强!
,







![Succulence[1.4.3]版攻略(随缘更新P1)](http://img.17u1u.com/uploads/small/pgc-image/e2961ce726e0495a8410deb06e8692b8.jpg)








