相对于 UE4 中的玩家,UI 航路点箭头是否朝着下一个检查点的方向旋转?

问题描述

我一直致力于开发一个 UI 组件,该组件在用户玩游戏时始终指向下一个检查点。我的问题是我不知道如何更新箭头相对于玩家和下一个检查点的旋转。使用我当前的设置,箭头会不规律地旋转,或者绕圈旋转。我相信我想使用的节点是“Find Look at Rotation”、“RInterp To”和“Add Rotation”。

这是我目前所拥有的:https://imgur.com/a/130u4k6

我的玩家 actor 是一个 pawn,检查点是一个我在玩游戏时隐藏的空 actor 类,而航路点箭头是一个漂浮在可玩环境之外的静态网格物体,我设置了 2DCaptureComponent 和绿屏,这样我就可以在游戏过程中更新航点箭头的旋转,并且 UI 会自动更新。

-- 更新--

我能够使用此设置正确设置航点箭头的初始旋转:https://imgur.com/a/VFPx7tx

我将“添加旋转”节点更改为“设置世界旋转”,并将 -90 添加到偏航(以偏移航路点箭头的初始方向)。但是,在设置初始旋转后,它不再更新玩家actor 旋转后的旋转。有什么见解吗?

-- 编辑 --

这里是 1) 蓝图捕获类中的航路点箭头,以及 2) 蓝图实例在世界中存在时的旋转角度:https://imgur.com/a/CB60aq4

解决方法

使用设置世界旋转而不是添加世界旋转

您应该使用 Get Player Pawn 然后使用 Get Actor Location。对于旋转,我认为您可以执行 Get Player Camera Manager 然后 Get Actor Rotation 如果您想要相机的旋转。或者,如果您想要 pawn 的旋转,您应该使用 Get Player Pawn 然后 Get Actor Rotation

为了处理您需要的偏移量,将您的箭头实现为一个actor,网格作为一个静态网格组件,它是根的子节点。您可以将您需要的偏移量应用到网格上,使其指向角色本地向前的方向。

来源:@denmonz