【问题标题】:Is there a way to get an information who started a collision?有没有办法获取开始碰撞的信息?
【发布时间】:2022-01-06 23:42:33
【问题描述】:

我的项目中有两个演员,有时 AI Pawn 会导致碰撞,有时玩家会导致碰撞。有办法区分吗?

【问题讨论】:

  • 启动它是什么意思?如果你在追查谁跑得更快,那就是if( playerPawn->GetVelocity().SizeSquared() > aiPawn->GetVelocity().SizeSquared()) { /* player is moving faster */ }

标签: unreal-engine4


【解决方案1】:

你检查过 AI Pawn 和 Player 的 onHit 函数吗?

【讨论】:

    【解决方案2】:

    在 C++ 和蓝图中,碰撞事件都会为您提供FHitResult(在 BP 中仅显示为 HitResult)。这里是reference

    此结果包含被击中/重叠/跟踪的 Actor 和组件。

    所以,调用碰撞事件的对象是第一个对象,YourFHitResult.Actor 是另一个对象。

    在 BP 中,您可以使用 break hit result 节点来获取参与者/组件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-04-05
      • 2020-03-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-09
      相关资源
      最近更新 更多