UE4 UMG widget clips through the environment: VR 目标十字线

UE4 UMG widget clips through the environment: VR target reticle

我正在创建一个 VR 游戏,我想在用户注视的任何地方绘制一个目标十字线。标线正在世界 space 中绘制,并放置在与用户正在查看的对象相同的深度。 (我正在使用线迹定位目标表面并将标线移动到所需深度)。

我正在使用 UMG 小部件绘制世界中的标线 space。

我的问题是十字线偶尔会穿过世界。在 Unity 中,我可以设置我的 material 着色器来在其他所有东西上绘制十字线(无论相对深度如何)。但是,我很难在 UE4 中复制相同的行为。我在网上看到您可以在半透明的 material 上设置 'Disable Depth Test',但由于我的 material 域是 'User Interface',我不认为这是一个选项。

我应该如何实现预期的结果?

如果我没理解错的话,你想要你正在看的物体之前的十字线?

我会创建一个名为 "reticule" 或类似名称的演员,并在其中添加您的 UMG 小部件,以及用于碰撞的盒子或胶囊(胶囊会更平滑)。我会让它与所有几何体发生碰撞,以便标线到达跟踪位置,但与对象发生碰撞,不允许发生剪裁。

如果标线开始限制机器人或玩家的移动,您可以禁用棋子的碰撞。希望这有帮助:)

而不是使用 UMG:渲染带有十字线纹理的四边形,然后设置 'Disable Depth Test' 给出正确的结果。