【发布时间】:2023-03-26 12:57:01
【问题描述】:
我是虚幻引擎的新手,我正在尝试使用盒子碰撞器向对象添加很大的力,但在它与其他对象(只是另一个实例)碰撞后,彼此之间的重叠并变得像一个对象并移动彼此。
有人解释他们的行为以及我应该如何解决这个问题?
【问题讨论】:
标签: unreal-engine4 unreal-blueprint
我是虚幻引擎的新手,我正在尝试使用盒子碰撞器向对象添加很大的力,但在它与其他对象(只是另一个实例)碰撞后,彼此之间的重叠并变得像一个对象并移动彼此。
有人解释他们的行为以及我应该如何解决这个问题?
【问题讨论】:
标签: unreal-engine4 unreal-blueprint
这里发生的是两个对象不断地相互碰撞。要解决此问题,您可以尝试停用重叠对象或碰撞对象上的 OnOverlap()-Event。
在蓝图中,您可以通过将重叠对象的碰撞静态网格之一的Generate Overlap Events-Variable 设置为false 来实现这一点。
在 C++ 中,您可以简单地删除其中一个碰撞对象的动态事件回调:
CollidingComponent->OnComponentBeginOverlap.RemoveDynamic(this, &ACollidingActor::OnBeginOverlap);
其中CollidingComponent 是您的对象的组件,它会触发重叠事件。
【讨论】:
就像@Alex 所说,它们一遍又一遍地相互重叠。如果您不知道,您可以向您的蓝图节点添加断点,就像在您的代码中一样,通过右键单击节点并选择启用断点 (或类似的东西)。您的游戏将在到达它时停止并切换到蓝图中的确切点。然后,您可以将鼠标悬停在该节点上,然后查看进出该节点的每个变量值。
希望这有助于您学习使用虚幻引擎。
【讨论】: