如何定义子弹和绘制的球体对象之间的碰撞

问题描述

我创建了一个FPS类型的新项目,然后绘制了10个球体。 我问你有关在演员中创建此类自定义事件的地方,我将这些领域画出来,以便我可以用子弹从蓝图中调用自定义事件, 在这里,我实际上使用这些领域之一实现了对子弹的命中检测。我可以用不是演员的球体来检测命中吗?球体只是一个绘制的物体?

解决方法

sivak

有几种方法可以解决此问题,下面将详细介绍它们:

  1. 正如George在上面的评论中建议的那样,您可以为这些球体中的每个球体添加一个球体碰撞。您必须提供可以从绘制的球体中轻松获得的这些球体的相对变换,以区分这些球体碰撞中的每一个,您必须将每个球体碰撞提升为一个变量(或拖出“返回值”并将其设置为变量中的对象)。然后,您可以从子弹蓝图执行EventHit或OnEventBeginOverlap(以更适合您的目的为准),您将能够看到子弹击中哪个球体。 (请记住,这将为您提供要击中的“球体碰撞”,而不是静态网格物体/绘制球体本身,但是可以使用多种方法来使用该方法来引用原始球体) Add Sphere Collision + Promoted to variable

  2. 执行此操作的第二种方法,如果您对球体actor有一个蓝图并且要在此关卡中制作10个副本,那么这更适合做SphereOverlapComponents。您将必须提供绘制的球体的位置和半径作为输入。您还可以设置一个组件类过滤器,以仅考虑与子弹的碰撞。这将允许您检测要与哪个Sphere碰撞。 IMO这是一种更简单的方法,但是我不确定您要实现的目标,因此我将由您自己决定。 SphereOverlapComponents

哪种方法更好取决于您的需求以及在发现与子弹的碰撞后打算做什么。

我希望我的回答对您有所帮助,如果您还有其他问题,请告诉我,我会尽力帮助您:)