【发布时间】:2020-10-27 05:20:21
【问题描述】:
大家好,我目前正在开发一款第三人称游戏,我想将抓钩从玩家发射到偏离摄像机中心的点。
我有一个带有用于十字准线的 Ui 图像的屏幕覆盖画布。当按住左移键时,十字准线沿 x 轴从中心向外移动,一旦释放转移,就会返回中心,有点像游戏中的十字准线传播,除了我想通过 shift 键触发传播。这些十字准线用于指示抓钩着陆的锚点的位置,从玩家出发并击中十字准线正前方的任何物体。 (想象一下对泰坦 ODM 设备的攻击,如果你看过的话)。我正在寻找一种方法,在这些十字准线偏离中心的情况下,将它们从玩家投射到这些十字准线的前方。
到目前为止,我已经设置并运行了擒抱系统,但是当我使用十字准线传播时,方向参数出现问题。它分离得很好,但是钩子相对于十字准线的位置显然不在,因为我目前正在尝试使用角度计算,而不是这些标线前面的位置。
我基本上想知道是否可以使用这些屏幕覆盖 UI 图像来向前投射,或者是否有更好的方法来完成同样的事情。我有疑问,因为它们是屏幕覆盖,所以我想它们的坐标不会在它们出现时附加到相机上。
提前感谢您的帮助。
【问题讨论】:
-
是什么阻止您从这些覆盖层在屏幕上的位置投射光线?
-
这就是我希望做的,但不知道如何实现。
-
ScreenPointToRay docs.unity3d.com/Manual/CameraRays.html 怎么样?
-
谢谢,这似乎是正确的方向。但是,当叠加层的物理位置实际上不是它出现在屏幕上的位置时,如何获得屏幕叠加层的矢量 3。 (即它出现在我的屏幕上,但实际位于地图一侧的某处)。如果这是一个愚蠢的问题,请提前道歉
标签: c# unity3d user-interface game-physics raycasting