unity-game-engine - 我可以在 VR 应用程序中在计算机屏幕上使用鼠标吗?

标签 unity-game-engine virtual-reality oculus

在 VR 中是否可以使用鼠标点击电脑屏幕上的内容?

我正在使用 Oculus Rift 开发一个 Unity VR 应用程序,该应用程序应该由两个人使用:一个人使用 HMD,另一个人看着电脑屏幕。没有头显的人应该能够突出显示场景中的某些对象,我能想到的最简单的方法之一就是允许这个人单击场景中的对象,它们就会突出显示。

这看起来很简单,因为 Unity 已经将 HMD View 渲染到 2D 计算机屏幕上。然而,the easiest way I found这样做不适用于 OVRCameraRig(是的,我的对象有一个碰撞器,是的,我的相机有一个物理光线转换器)。我也尝试过the raycasting method described here

最佳答案

您需要执行类似于使用光线转换进行鼠标拾取的操作:http://antongerdelan.net/opengl/raycasting.html

通常,当您想要从局部空间获取坐标/向量到模型/世界空间时,您可以将坐标/向量乘以模型/世界空间矩阵。如果你想向后(在你的情况下),你乘以矩阵。

我过去曾亲自将其用于非 VR 内容,但它可以很容易地进行调整。我还为自己编写了一份快速指南来解释不同的空间:

3D Spaces (Model/World, View/Eye, Projection)

编辑:由于您已经在使用 Unity 的内置光线转换器,因此这是我最近制作的一个使用 UE4 进行基于光线转换的抓取的示例项目。通过这种方法,我还使用了 UE4 光线转换器:http://www.katianie.com/SourceCode/Unreal/VRGrabbing.zip

关于unity-game-engine - 我可以在 VR 应用程序中在计算机屏幕上使用鼠标吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48194527/

相关文章:

c# - 加载在 Unity 中创建的下载的 iOS 应用程序文件

android - Google VR 应用程序出现 "Incompatible App"错误

c# - 如何从 Oculus Remote 获取输入?

c++ - 使用 Unity3D 作为带有 OpenGL 应用程序的 Win32 c++ 的 GUI

c# - Unity C# Player 使用 Rigidbody2D.AddForce 速度太快

c# - 如何在 Unity iOS 中正确使用 WebCamTexture?

c# - 在多摄像头的情况下使用 RayCast 在 Sprite 上捕获触摸

virtual-reality - 是否有适用于 Windows Mixed Reality 事件的 ETW 提供程序?

android - 是否可以使用 google cardboard API 来创建原生 Android 应用程序?

php - Oculus Rift 和 Facebook 组合的编码工具集