我正在为三星Gear VR开发一个Unity的VR应用程序,我正在尝试实现一个指针,以便用户可以与场景中的对象进行交互。当您查看远处的对象时,它看起来不错,但是当您专注于近处的对象(应用程序机制非常需要)时,指针似乎是重复的,因此您需要将所需对象居中在点的中间:P
我尝试过什么
-使用GoogleVR包装随附的GvrReticlePointer for Cardboard
- 通过向主相机添加画布来创建我自己的指针,并在中心显示图像
- 更改一些相机设置,如视野,立体声分离等。
- 通过二维码 https://i.stack.imgur.com/M0JXn.jpg 配置我的手机
重现步骤(将画布添加到相机)
1.- 在 Unity 中创建一个简单的场景,其中包含一些要查看的对象
2.- 设置安卓的构建设置
3.- 配置播放器设置以启用"支持虚拟现实">
4.- 将Oculus添加为虚拟现实SDK
5.- 设置包名称和最低 API 级别
6.- 向相机添加画布
7.- 将图像添加到画布,十字即可完成工作
观察我正在使用Unity 5.6.0b10,因为Google Cardboard的网站建议将此版本用于GoogleVR软件包。我正在使用三星Gear VR和三星Galaxy S6 edge +手机。
已解决
显然,这是一个有据可查的问题,称为自愿性 Diplopia,这是一个人为错误而不是软件错误(阅读此处,Unity 的文档,VR 中的标线交互部分)。
问题是试图将标线放在用户界面中的固定点,就像传统的3D游戏一样。在VR中观察较近的物体时,这将导致这种视觉双重问题。
解决方案是将标线定位在用户正在查看的 3D 空间中的点。如果他看得更近,标线就会拉得更近。当然,现在您还必须相应地缩放标线,以便用户无论在哪里查看都可以看到相同的大小。
Unity 还提供了一些关于此的示例脚本,您可以在资源商店中找到它们,称为 VR 示例。
现在我遇到了性能问题(我在移动平台上工作):有时,当你快速转头时,你可以看到之前绘制的标线。但看起来比双标线版本好得多。