我目前正在研究如何找到通过眼睛观察的眼睛的注视位置。如果有人可以帮助我,那将非常有帮助。下图说明了我的设置。黑色矩形是我安装在眼内的眼动仪,紫色线是眼屏,蓝线是从顶部看到的眼睛曲率。目前我可以通过 Viewpoint 应用程序计算gaze_angle和viewing_distance。我需要帮助才能使用此信息找到x_gaze图片上标记的实际位置。

public Transform OculusPlayerPrefab;
public Transform DefaultPlayerPrefab;
void Start() {
Transform player = OVRDevice.IsHMDPresent() ?
(Transform)Instantiate(OculusPlayerPrefab) :
(Transform)Instantiate(DefaultPlayerPrefab);
player.position = transform.position;
}
Run Code Online (Sandbox Code Playgroud)
这应该检测 oculus rift HMD 是否已连接并实例化 oculus 播放器预制件,否则使用默认值。但是,IsHMDPresent()无论 Oculus Rift 是否连接,都会返回 false。然而,在 unity/oculus 集成包中,OVRMainMenu 使用 IsHMDPresent() 方法获得了预期的结果。
我在使用三星S6的GearVR上的Unity(5.3.4p1)遇到两个主要问题:
1)异步场景加载.是否有任何变化我可以在背景中加载新场景而不会看到小的冻结?场景有~60k三角形,使用了几个4k纹理和~10个其他2k纹理.当这个场景加载时,有多个短暂的冻结.我知道我可以通过淡出黑色然后开始加载级别来避免这种情况.但是需要大约10秒钟,用户可能会因为看到黑色屏幕而长时间使用VR耳机而感到困惑.
2)使用WWW类下载的图像创建纹理.我在另一个场景中使用360 4k图像显示在圆顶上.当我尝试在运行时下载纹理(4k,PNG或JPG)时,它是异步完成的.但是当我使用时,Unity会冻结2-3秒:
Texture2D myTexture = www.texture;
Run Code Online (Sandbox Code Playgroud)
除了使用下载的字节并在背景上使用非Unity算法解压缩JPG或PNG然后将创建的rgb值加载到新纹理之外,有没有其他选项可以避免这种情况吗?在Flickr VR应用程序中可以看到平滑纹理加载的好例子,但我怀疑他们使用Unity来创建这个应用程序.
这两个问题也出现在Oculus Rift上,但由于PC性能要好得多,因此不太明显.
通常,我希望使用Unity在Gear VR中实现平滑的加载体验.这有点可能吗?
我试图弄清楚如何在Unity3D 5.3.4f中使用oculus遥控器。我已经找到了一些 有关OVR映射的文档,但似乎无法弄清楚。
我要实现的是单击中间按钮(Button.One)。
我现在使用的是这一行代码
if (OVRInput.GetUp(OVRInput.Button.One))
{
Debug.Log("remote click");
}
Run Code Online (Sandbox Code Playgroud)
但是,当我运行该应用程序时,出现此错误。
NullReferenceException:对象引用未设置为对象OVRInput.GetUp(按钮virtualMask,控制器controllerMask)的实例(在Assets / OVR / Scripts / OVRInput.cs:600上)menuButtonHandler.Update()(在Assets / menuButtonHandler.cs:136上) )
可以在此脚本中找到
/// <summary>
/// Gets the current up state of the given virtual button mask with the given controller mask.
/// Returns true if any masked button was released this frame on any masked controller and no other masked button is still down this frame.
/// </summary>
public static bool GetUp(Button virtualMask, Controller controllerMask = Controller.Active) …Run Code Online (Sandbox Code Playgroud) 在android中GearVR,是否可以在普通/电话模式下启动应用程序,然后Unity/VR在用户单击按钮进入时转换为VR?
到目前为止,应用程序要么VR以"vr_only"作为选项完全启动,要么正常启动并Oculus在我们尝试"vr_both"或"vr_dual"时转到Home.
这样的事情是可能的,还是我们必须制作两个独立的应用程序?请注意,使用Unity中的"虚拟现实支持"选项将不起作用Gear.
当您在 勾选支持虚拟现实选项的情况下按x时,以下代码片段返回 False:
public class ToggleXR : MonoBehaviour
{
private void Update()
{
if ( Input.GetKeyDown(KeyCode.X) )
{
XRSettings.enabled = !XRSettings.enabled;
Debug.Log("XRSettings: " + XRSettings.enabled);
}
}
}
Run Code Online (Sandbox Code Playgroud)
有没有人有针对Oculus 1.18.1和Unity 2017.2的最新稳定版本不允许 VR 模式的解决方案?
Oculus 对此一直保持沉默,所以我想知道使用这两个最新版本的每个人是否都遇到了同样的问题,还是只有我有这个问题?我是否缺少应该下载并导入 Unity 以进一步检查XR 设置选项的内容?
我创建了一个新的Unity 2017.2.0f3 项目,在XR Settings 中启用了VR,但出现以下两个错误:
无法打开 Assets/OVR/Plugins/1.18.1/OSXUniversal/OVRPlugin.bundle/Contents/MacOS/OVRPlugin,错误:dlopen(Assets/OVR/Plugins/1.18.1/OSXUniversal/OVRPlugin.bundle/Contents/MacOS/ OVRPlugin,2):库未加载:@rpath/LibOVRRT_0.framework/Versions/5/LibOVRRT_0 引用自:/Users/OculusUnityProject/Assets/OVR/Plugins/1.18.1/OSXUniversal/OVRPlugin.bundle/Contents/MacOS/OVRPlugin原因:找不到图片
和
无法加载 Oculus 插件。
我还下载并导入了(从Asset Store) Oculus 集成 (已自动更新到 1.18.1),但仍然出现上述两个错误。
如何运行一个简单的基本 Unity-VR 项目?
我在他们的文档中没有看到这个。有谁知道(或有 ETA)我们是否可以以编程方式打开/关闭直通相机模式?
我目前正在使用 Unity 为 oculus quest 2 开发一个小型应用程序。我创建了一个画布,在其中添加了一个按钮和一个输入字段。通过使用 XR 交互工具包,我可以使用两个控制器单击按钮或输入字段。但是,仍然无法在输入字段中输入任何内容,因为当我单击它时,任何键盘都会打开。
我已经从 git ( https://github.com/Unity-Technologies/XR-Interaction-Toolkit-Examples )下载并探索了示例项目,但我很长一段时间没有使用 unity,所以看起来不可能找到使其工作的设置(或脚本或其他任何东西)。
有谁知道单击 InputField 时应该如何打开键盘?另外,我输入的文本会实时显示在 InputField 中吗?
谢谢 !:)
编辑:显然,目前无法使用 oculus 默认键盘,因为 XRIT 尚未正式发布。
我想获取您在 oculus 设置中设置的玩家高度。例如,如果您身高 185 厘米(6 英尺),则显然持有相机对象的游戏对象必须设置为相同的高度,即 185 厘米。
是否有我可以查找的函数或变量来获取玩家高度,或者我是否必须自己校准?
目前似乎没有一种简单的方法可以在 Oculus Quest 中复制/粘贴文本,也没有“输入”到配套应用程序并将其发送到耳机中的简单方法(至少我见过)。这使得从密码管理器等输入复杂密码变得极具挑战性。
我读过一些文章,说可以将蓝牙键盘与耳机配对,这会稍微好一些,但仍然不允许我从密码管理器复制/粘贴。
有谁知道实现这一目标的方法?