在 Unity 中使用光线投射与 WorldSpace UI 交互

Interacting with WorldSpace UI with raycast in Unity

我正在为 google daydream 创建移动虚拟现实游戏,我想将 WorldSpace UI 添加到我的游戏中并与之互动。有控制器(像 Wii 控制器一样工作)跟踪旋转,所以我在游戏中有旋转轴。 There 是这个控制器如何工作的例子。我认为这样做的好方法是使用 raycast 与 UI 交互(它会从 pivot 拍摄),但在搜索之后我没有发现任何有用的东西。也许还有另一种更简单的方法?

在 Google VR 中设置注视交互的步骤。

  1. 添加 Gaze 输入模块EventSystem object:

  2. Graphic Raycaster 组件添加到 Canvas(所有 canvases)并分配 MainCamera的child)作为canvas组件中的事件相机:

  3. 添加 GvrReticle 预制作为主相机的 child。它应该是这样的:

现在您的 UI 将像往常一样响应点击 (Input.GetMouseButtonDown(0))。 Retical/Gaze 下的 UI 将被点击。您所要做的就是将控制器的输入映射到 Input Manager

中的单击按钮

希望这会有所帮助:)