如果重叠则弹出阻塞对象:UE4

Eject Blocking Object if Overlapping: UE4

我的 2d 平台游戏有一个“时间旅行”机制。 你在一个位置放置全息图(没有碰撞和一些漂亮效果的演员)。

当你按住“倒带”按钮时,你的角色的碰撞和重力被关闭,他慢慢地向全息图移动。

当你松开倒带按钮时,它会重新打开他的碰撞。

我的地图设置为“阻挡”棋子(这样他就可以在上面行走等)。

如果你在他与地形重叠时松开按钮,然后重新打开他的碰撞,他就会卡住。

我在想该怎么办。 Unity 会自动“弹出”一个与不应该重叠的对象重叠的对象。

由于地形被设置为阻挡棋子,我无法触发重叠事件。 “On Component Hit”只会在他站立或摩擦地形时开火,所以两者都不会。

我应该如何检测玩家是否在地形中弹出?我可以决定稍后做什么(弹出它们、杀死它们、阻止它们出现等)。但现在我只需要将他们与触摸瓷砖地图并在其中区分开来。

有什么想法吗?

所以我最后做的是在我的播放器上复制胶囊对撞机。新胶囊(称为 'Terrain Overlap')忽略所有碰撞,除了它与 tilemap 重叠。

该组件有一个开始和结束重叠方法,该方法在字符上设置一个布尔值。

当玩家松开倒带按钮时,如果他们在地下(布尔检查),我可以触发死亡方法。