Unreal Engine 4 —— GAS系统学习 (十一) 为主角增加技能框(添加血量球)

首先我们新建一个文件夹导入素材。这次我们要使用的素材是第一、第二和第四个。分别是气泡、血量球和技能框。

先新建一个技能框的UI。在编辑模式中拖入技能框的图片。

 并按照以下参数进行设置。SIZE的大小就是图片的大小。它是最底层的涂层,ZORDER设置为1。

创建一个新材质,准备制作血量球。

按照如下方式进行设置和连接。

新建一个血量球的UI。

按照如下设置。

 

Mat做好之后,为了方便编辑,创建一个该MAT的Instance。

 

打开血量球的蓝图编辑。按照以下方式连接。将Glass Ball这个变量(图片)设置为刚才新建的Mat_Instance。

然后新建一个事件Percentage(有一个float类型的参数输入)用于更改血球的血量显示。从GlassBall的UI中得到MAT,更改MAT中的Scalar类型参数的值,通过Scalar类型的参数名来确定具体的哪个模块。

 

 在MAT中这个Percentage就是ScalarParameter类型。设置它的值就可以改变血量球的显示,这个数据的变化自然得根据角色剩余血量的比例来。

 打开技能框的UI,按照下图载入血球的UI,调整好血量球的位置即可。

打开主角的蓝图,进行编辑。创建技能框UI,并显示。

在之前的Overlap事件的最后添加如下连接。

当主角承担伤害后就激活Percentage事件,并传入血量比,以调整血量球的显示。

运行成功,效果如下:

这里需要在代码里修改一下一个小问题:

给MaxHealth结构体增加了一个宏定义,可以让其在主角的蓝图中被访问到。

为了当AI死亡时候,更加安全地释放控制权限。

在敌人的控制器文件中增加了一下代码:

头文件:

virtual void OnUnPossess() override;

CPP文件:

void AEnemyController::OnUnPossess()
{
	Super::OnUnPossess();
	AIBehaviorTree->StopTree(EBTStopMode::Safe);
}

这种方式代替了之前的GetBrainComponent()->StopLogic()的方法,虽然StopTree的底层也是这样实现的,但是直接使用StopTree来释放控制能够避免很多麻烦,至少,线程是安全的。

 

文中所涉及的资源下载地址为:https://download.csdn.net/download/weixin_43654485/12753102

 

欢迎大家加入Unreal Engine C++ & Blueprint群一起交流:1143575617

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值