m0_73784819 2024-09-27 17:57 采纳率: 66.7%
浏览 2

ue5 虚幻 碰撞重叠触发次数问题

释放技能如何控制一次重叠伤害,使用一次技能比如火球,在npc身上爆炸,就产生多次伤害(重叠事件),如何控制?
我实用了do once节点通过delay来Reset这个节点,,但是技能快速按的时候,很容易让do once的Reset 失效导致火球无法打出伤害了,

火球蓝图后面使用了延迟0.2秒destroy。因为有播放爆炸特效,所以设置了延迟再destroy。

do once是连接伤害事件里的,

  • 写回答

1条回答 默认 最新

  • 一轮明月照丘壑 2024-09-27 17:58
    关注

    以下回复参考:皆我百晓生券券喵儿等免费微信小程序作答:

    在UE5(虚幻引擎)中处理技能释放时的碰撞重叠触发次数问题是一个常见的挑战。当涉及到技能如“火球”这样的爆炸效果时,尤其是在短时间内多次触发或重叠时,确保伤害的正确性和一致性是很重要的。以下是一些建议来解决你所描述的问题:

    1. 使用碰撞检测来处理伤害事件:

      • 当火球与NPC或其他物体碰撞时,首先检测是否已经在该对象上造成了伤害。这可以通过检查对象的最近伤害时间或其他类似的标记来实现。
      • 如果检测到对象已经受到了伤害,则可以决定这次碰撞不造成伤害或者只造成一次特殊效果(如减速或眩晕)。
    2. 优化Do Once节点的使用:

      • 你已经尝试了使用Do Once节点来防止重复触发伤害事件,但有时可能会因为技能的快速按下导致重置失效。可以尝试调整Do Once节点的重置逻辑,例如仅在特定条件下(如火球命中新的目标时)重置。
      • 考虑将重置逻辑与其他事件绑定,而不是简单的延迟,以确保不会因为玩家的快速输入导致重置失效。
    3. 调整延迟销毁时间:

      • 由于你设置了火球爆炸特效的延迟销毁时间,可以考虑调整这个延迟时间以确保伤害事件与特效同步。如果特效的延迟时间过短,可能会导致伤害事件与实际视觉效果不一致。
    4. 考虑使用“伤害队列”系统:

      • 如果一个对象在短时间内多次受到攻击,可以设计一个系统来管理这些伤害。例如,只有第一个攻击造成伤害,随后的攻击会进入队列等待处理。这样即使技能快速连续释放,也能确保每个攻击只计算一次伤害。
    5. 优化碰撞检测逻辑:

      • 确保你的碰撞检测逻辑是高效的,并且只在需要的时候运行。过多的碰撞检测可能导致性能问题或其他副作用。
    6. 玩家输入处理:

      • 考虑如何处理玩家的输入,尤其是在连续释放技能时。如果玩家的输入被正确缓冲或平滑处理,可以避免快速重复触发导致的逻辑错误。

    根据你的描述和现有的蓝图设置,可能需要结合上述建议进行调整和优化。此外,UE5的社区和论坛也是获取帮助和灵感的好地方,你可以在那里找到其他开发者分享的经验和解决方案。

    评论

报告相同问题?

问题事件

  • 创建了问题 9月27日

悬赏问题

  • ¥15 如何在vue.config.js中读取到public文件夹下window.APP_CONFIG.API_BASE_URL的值
  • ¥50 浦育平台scratch图形化编程
  • ¥20 求这个的原理图 只要原理图
  • ¥15 vue2项目中,如何配置环境,可以在打完包之后修改请求的服务器地址
  • ¥20 微信的店铺小程序如何修改背景图
  • ¥15 UE5.1局部变量对蓝图不可见
  • ¥15 一共有五道问题关于整数幂的运算还有房间号码 还有网络密码的解答?(语言-python)
  • ¥20 sentry如何捕获上传Android ndk 崩溃
  • ¥15 在做logistic回归模型限制性立方条图时候,不能出完整图的困难
  • ¥15 G0系列单片机HAL库中景园gc9307液晶驱动芯片无法使用硬件SPI+DMA驱动,如何解决?