先在人物基础类中写好 对应的属性(血量100,是否死亡这个布尔值,什么时候判定死亡)
void ABaseCharacter::CalculateDead() {
if (Health <= 0)
isDead = true;
else
isDead = false;
}
void ABaseCharacter::CalculateHealth(float delta) {
Health += delta;
CalculateDead();
}
#if WITH_EDITOR
void ABaseCharacter::PostEditChangeProperty(FPropertyChangedEvent& PropertyChangeEvent) {
isDead = false;
Health = 100;
Super::PostEditChangeProperty(PropertyChangeEvent);
CalculateDead();
}
#endif
创建一个蓝图接口BP_Damage ,创建一个叫AffectHealth的函数,在其中创建一个float输入值作为伤害

Projectile伤害:
接下来在敌人组件中 写死亡事件
具体逻辑就是:首先,发生了AffectHealth事件,影响了血量,所以要计算血量(C++中的CalculateHealth),再用一个分支来判断血量,如果死亡便执行..,如果没死就不执行..
UE4蓝图实现Projectile与碰撞体伤害机制

本文介绍如何在UE4中使用蓝图实现Projectile伤害和碰撞体伤害功能。首先,定义人物属性如血量和死亡判断。通过创建BP_Damage接口,实现AffectHealth函数来处理伤害。在Projectile碰撞时,检查目标是否具有BP_Damage接口并排除友好对象,执行伤害逻辑。同时,调整碰撞设置以触发碰撞事件。对于碰撞体伤害,创建相应碰撞体,实现伤害接口,并在加害者对象中设置伤害频率。当发生和结束碰撞时,执行相应的伤害和清除操作。
最低0.47元/天 解锁文章
2万+

被折叠的 条评论
为什么被折叠?



