Sprite 面向光标 - UE4 蓝图

Sprite face the Cursor - UE4 Blueprint

我正在用 Ue4 制作一个 2d 射击游戏。我正在尝试旋转精灵以面对鼠标。精灵稍后将成为一个隐藏的箭头,它决定了子弹产生时的方向。添加精灵是为了帮助我进行可视化调试。由于游戏是2d的,精灵应该只需要绕Y轴旋转。

精灵没有正确旋转。当我将鼠标指针移到游戏的边缘时 window:它不是绕着一个圆圈旋转 360 度,而是来回摆动(见第二张图片)。

我认为这是弧度或世界空间问题,但我已经完成了我知道的基本故障排除。第一张图片是产生错误的蓝图的最干净版本。我尝试过 ATAN、ATAN2 和 GetMousePosition 解决方案,所有这些解决方案看起来都与此有所不同。

在精灵图像中,红色圆圈显示了我的光标所在的位置。红色箭头只是为了帮助确定精灵倾斜的角度(它们都是错误的)。圆位的顶部(红色箭头逆时针 90 度)应该面向鼠标。精灵的默认未旋转位置,圆形位向上指向屏幕顶部。值得注意的是,实际旋转和所需旋转似乎都偏离了 90 度的倍数,但这可能是巧合。

对我做错了什么有什么想法吗?

我想通了。

我曾(错误地)假设鼠标在屏幕上的位置严格是 XY(Z 为 0)。从hit事件弹出位置后,鼠标在XZ中计算(Y几乎不动)。

我切换回 ATAN2 解决方案(在 BP 中看到),但发现我的精灵背对着鼠标而不是朝向它。添加一个 -1 乘数修复它,它现在按预期工作。

请参阅 BP 以获得完整的解决方案。干杯,所有。