相对于 UE4 中的玩家,有一个 UI 航路点箭头旋转到下一个检查点的方向吗?

Have a UI waypoint arrow rotate in the direction of the to next checkpoint, relative to the player in UE4?

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

这是我目前的情况:https://imgur.com/a/130u4k6

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

-- 更新--

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

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

-- 编辑--

这里是 1) 蓝图捕获中的路标箭头 class 和 2) 蓝图实例在世界中的旋转角度:https://imgur.com/a/CB60aq4

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

您应该先使用 获取玩家 Pawn,然后再使用 获取 Actor 位置。对于旋转,我认为您可以先 Get Player Camera Manager 然后 Get Actor Rotation 如果您想要相机的旋转。或者,如果您想要 pawn 的旋转,您应该使用 Get Player Pawn 然后 Get Actor Rotation.

为了处理您需要的偏移量,将您的箭头实现为一个演员,将网格作为一个 静态网格组件,它是根的一个子组件。您可以将您需要的偏移专门应用于网格,使其指向 actor 局部前向的方向。

来源:@denmonz