UE5笔记【十三】蓝图系统-血量控制系统

上一篇我们讲解了,蓝图中的函数功能。可以将蓝图中重复的代码,再次利用。演示了Smasher的效果。

这一篇中,我们讲解Smasher造成伤害之后,如何保存和计算角色的血量状态。

我们的设计思路是:smasher每次碰到角色是,造成50点伤害,角色血量100。

触碰到两次,角色Die。

首先我们打开角色蓝图:

然后我们新建一个变量:名称为:Health。类型为float型,然后用此保存角色血量。设置默认值为100。

然后我们,新建一个自定义事件:这个事件名称:TakeDamage,输入参数为DamageAmount。一看就是造成伤害的事件,参数为伤害值。然后拖动血量Health进入蓝图。两者做差。

又重新得到血量值。然后set血量值。此时新建一个Branch。用于判断血量是否小于0。

小于0

然后将Branch连接。此时如果血量小于0需要角色Die。如何Die呢。

我们需要新建一个事件:PlayerDeath。这个事件专门用来演示,当角色Die时的动作。

所以我们需要用到角色的蓝图mesh。拖动进入到蓝图中。

 我们可以看到角色的Mesh细节:里面包含了物理仿真和碰撞预设。其中碰撞预设中包含了RagDoll。

当角色发生Die时,然后启动物理仿真setSimulate physics,然后设置碰撞。setCollisionPorfileName。  

设置profileName为RagDoll。

最后Disable any input from the user after they die。

 此时我们就可以在TakeDamage事件后面添加上角色Die事件。

 完成这两个事件的配置后,我们需要回到Smasher蓝图中,因为:造成伤害,需要Smasher来执行。

在Smasher中,触碰到Box造成伤害,当好Box有个On Component Begin Overlap事件。

点击添加+

 然后,我们需要添加到底哪个Actor触碰了Box。

cast to ThirdPersonCharacter。

然后我们就可以调用这个Character的造成伤害的方法了。

 给方法传递一个参数。Damage。 

 然后保存。

回到角色蓝图中,然后:

print一下,HIT!。然后再打印一下角色血量值。

添加两个Print。然后变更流程。 

 同时,在Smasher蓝图中,将Damage变量,设置默认值为50。

需要编译,才可以设置默认值。

 编译角色时,报错:

 我们将mesh和目标连接。

注意:

勾选这两个选项,否则无效果。 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值