11.UE5伤害事件,伤害飘字,UI动画

2-13 伤害事件,伤害飘字,UI动画_哔哩哔哩_bilibili

目录

1.伤害事件

 2.受击动画和死亡动画

3. 伤害飘字

4.UI动画


1.伤害事件

 打开火球蓝图,当火球出发重叠事件时候,调用重叠对象的伤害事件,因为我们希望伤害只发生一次,所以调用do once方法。

 在应用伤害之后,在重叠事件处生成发射器,生成火球爆炸的粒子特效。

 打开我们的怪物总类蓝图,响应应用伤害事件。按照Damage扣除当前生命值的血量,并打印查看。

 2.受击动画和死亡动画

如果生命值低于0,则播放死亡动画,否则播放受击动画

 死亡动画后分离AI行为树,并关闭尸体的碰撞体积,延迟后销毁Actor

3. 伤害飘字

创建UI组件,并调整其中的画布和文本的大小。

 将伤害文本提升为变量

 打开空间的图表编辑页面

 添加变量:伤害来源,设置为,生成时公开,实例可编辑,面向对象的编程思想。

 

4.UI动画

返回设计器,并添加动画:伤害飘字添加轨道伤害文本

 在播放的开始,中间,结束分别设置文本的位置,缩放,透明度以实现伤害飘字的效果

 轨道UI空间的图表编辑窗口中,编写逻辑,当构造组件时,将伤害设置为文本,并播放伤害飘字的动画,延迟一秒后删除组件,即从父项中移除

在Unreal Engine 5 (UE5) 中,要实现判定回血物品并在角色身上使用相应回血事件,你可以遵循以下步骤: 1. **创建回血物品类**: - 定义一个继承自`Actor`的类,比如`HealingItem`,其中包含一个表示生命恢复值的属性,如`float HealthRestoreAmount`。 2. **添加交互功能**: - 在`HealingItem`的`Event BeginPlay()`或`OnComponentBeginOverlap(AActor* Other)`方法中,检查碰撞的物体是否为玩家角色(例如通过`IsPlayerCharacter()`)。 ```cpp if (Other && Other->IsPlayerCharacter()) { // 触发回血事件 UGameplayStatics::Open伤害恢复菜单(Other); } ``` 3. **回血事件处理**: - 使用`UGameplayStatics`来执行回血操作,例如增加角色的生命值或播放回血动画。 ```cpp void HealingItem::HealPlayer() { APlayerCharacter* Player = Cast<APlayerCharacter>(Other); if (Player) { float NewHealth = FMath::Min(Player->GetMaxHealth(), Player->GetHealth() + HealthRestoreAmount); Player->SetHealth(NewHealth); // 播放回血动画或显示回血效果 Player->PlayAnimMontage(FName(TEXT("Healing"))); } } ``` 4. **蓝图/曲线表应用**: - 如果你想通过蓝图控制回血,可以在蓝图中创建一个状态机或序列化节点,当角色拾取物品时触发回血逻辑。 - 对于使用曲线表设置回复血量,可以创建一个数值输入节点,连接到角色的血量属性,然后使用时间轴上的关键帧来调整血量恢复过程。 ![示例蓝本](https://i.imgur.com/curve_table_example.png) 5. **AI行为树与事件关联**: - 在AI行为树中,你可以创建一个任务节点来代表寻找并使用回血道具的行为,当满足条件(如生命值低)时,执行这个任务。 综上,回血物品的判定和使用涉及角色碰撞检测、代码逻辑和可能的UI/视觉反馈。完成这些后,可以通过游戏测试验证回血功能是否正常工作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值