我试图弄清楚如何在Unity3D 5.3.4f中使用oculus远程。我发现了一些关于OVR映射的documentation,但我似乎无法弄明白。
我想要实现的是点击中间按钮(Button.One)。
我现在使用的是这行代码
if (OVRInput.GetUp(OVRInput.Button.One))
{
Debug.Log("remote click");
}
但是当我运行应用程序时,我收到了这个错误。
NullReferenceException:未将对象引用设置为对象的实例 OVRInput.GetUp(Button virtualMask,Controller 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)
{
return OVRManager.input.GetResolvedButtonUp(virtualMask, RawButton.None, controllerMask);
}
有没有人在团结之前习惯Oculus遥控器并且可以帮助我?
谢谢,
约翰
答案 0 :(得分:1)
在进行GetUp()调用之前,可能需要初始化该方法中的一个对象。
仔细查看您的初始化代码,以及您可能拥有的任何样本 - 我敢打赌,在不太看的情况下,您会发现遗漏的东西。我不熟悉Unity API,但如果它们与PC或移动C ++ API类似,那么您可能错过了一步,或者忘记启动VR服务。
答案 1 :(得分:1)
要使用Unity版2017.1.1中的输入,您首先要下载&#34; Oculus Utilities for Unity&#34;
Oculus Utilities asset package for Unity
然后你必须在Unity中导入包, 去: - &#34;资产&#34; - &GT; &#34;导入包&#34; - &GT; &#34;定制包&#34;
浏览你的&#34; Oculus Utilities下载&#34;
点击导入
调用函数&#34; OVRInput.update()&#34;在调用输入检查函数之前。
void Update ()
{
OVRInput.Update(); // Call before checking the input
if (OVRInput.Get(OVRInput.Button.DpadLeft)) {
print("left button pressed");
}
if (OVRInput.Get(OVRInput.Button.DpadRight)) {
print("right button pressed");
}
if (OVRInput.Get(OVRInput.Button.One)) {
print("round button pressed");
}
}
有关OVRInput的更多信息,请查看此链接