2016-05-03 56 views
4

我想弄清楚如何在Unity3D 5.3.4f中使用oculus remote。我發現了一些關於OVR映射的documentation,但我似乎無法弄清楚。如何從Oculus遙控器獲得輸入?

我想實現的是當中間按鈕(Button.One)被點擊時。

我現在用的就是這行代碼

if (OVRInput.GetUp(OVRInput.Button.One)) 
    { 
     Debug.Log("remote click"); 
    } 

但是當我運行該應用程序我得到這個錯誤。

的NullReferenceException:對象沒有設置爲一個對象 OVRInput.GetUp(按鈕virtualMask,控制器controllerMask)的一個實例(在資產/ OVR /腳本/ OVRInput.cs:600) menuButtonHandler.Update()(在資產/ 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); 
} 

發現使用了任何人魔環遙控器之前,團結並能幫助我嗎?

謝謝

約翰

回答

1

其中一個物體在該方法可能需要初始化您做出的裝束()調用之前。

仔細看看你的init代碼以及你可能擁有的任何樣本 - 我敢打賭,你沒有太多的期待後會發現缺少的東西。我不熟悉Unity API,但是如果它們與PC或移動C++ API類似,那麼很可能你錯過了一個步驟,或者忘了啓動VR服務。

+0

三江源的回答。 我把我的代碼一直放在腳本文件的末尾。但它似乎並不奏效。真的很奇怪的東西 – Johan

+0

沒關係,找到了解決辦法。我正在與錯誤的相機預製。您必須使用軟件包內的OVRcamera控制器。 – Johan

0

要在統一版本的輸入工作,2017年1月1日你必須先下載「魔環實用程序統一」

Oculus Utilities asset package for Unity

然後,你必須在Unity導入包, 轉到: - 「資產」 - > 「導入包」 - > 「定製包」 Oculus Utility package

瀏覽你的 「魔環應用程序下載」 enter image description here

點擊導入

在調用輸入檢查函數之前調用函數「OVRInput.update()」。

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更多信息,檢查此鏈接

OVRInput