You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

UE Blueprint交互物体时生命值仅扣一次 如何实现交互期间持续扣血?

问题根因

你当前的逻辑仅在OnComponentBeginOverlap(碰撞开始)事件触发时执行一次扣血,该事件只会在玩家首次进入物体碰撞范围的单帧运行,因此无法实现持续扣血效果。

修复方案

方案1:定时器实现(性能更优,推荐)

  • 在OnComponentBeginOverlap节点后连接Set Timer by Event节点:
    • 将扣血逻辑连接到定时器的触发事件引脚
    • 时间参数设置为期望的扣血间隔(例:填0.5代表每0.5秒扣一次血)
    • 勾选「循环」选项
    • 将节点返回的定时器句柄存储到自定义变量DamageTimerHandle中
  • 在OnComponentEndOverlap(碰撞结束)节点后连接Clear Timer by Handle节点,传入存储的DamageTimerHandle,碰撞结束时会立刻停止扣血
  • 额外补充:玩家生命值归零时需额外增加清除定时器的逻辑,避免空指针报错

方案2:Tick+状态标记实现

  • 新建布尔类型变量bIsOverlapping,默认值为false
  • OnComponentBeginOverlap触发时将bIsOverlapping设为true
  • OnComponentEndOverlap触发时将bIsOverlapping设为false
  • 连接Event Tick节点到分支判断,bIsOverlapping为true时执行扣血逻辑,可搭配Delta Seconds计算控制扣血频率,避免每帧扣血导致数值下降过快
参考蓝图

你当前使用的蓝图截图

内容的提问来源于stack exchange,提问作者Froyleduckle Gaming

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 03:15:03