cancel
Showing results for 
Search instead for 
Did you mean: 

OVRInput.GetConnectedControllers() returns RTrackedRemote, while only RTouch controller is connected

m-luebbers
Honored Guest
I'm developing an application for the Oculus Quest with Unity 2018.4.2f1, and OVRInput was working just fine reading controller inputs from the Quest's Touch controllers. Then all of the sudden, with no obvious cause, OVRInput.Get() and OVRInput.GetDown() stopped behaving correctly, messing up my control scheme.

For example, OVRInput.Get(OVRInput.Button.One), OVRInput.Get(OVRInput.Button.PrimaryIndexTrigger), and OVRInput.Get(OVRInput.Button.PrimaryHandTrigger) all have the expected behavior - returning true whenever the A button, index trigger, and hand trigger are currently being pressed, respectively. However, OVRInput.Get(OVRInput.Button.Two) no longer responds correctly - instead of being true whenever the button is depressed and false otherwise, pressing the button once sets the value to true permanently. OVRInput.Axis2D.PrimaryThumbstick no longer gives any data.

Digging into it a little more, it seems that my Oculus Touch controller is being confused for an Oculus Go controller. I have one controller connected currently - the right Oculus Touch controller, which shows up fine in the headset menus, but when I check the value of both OVRInput.GetActiveController(), and OVRInput.GetConnectedControllers() within my Unity app, both return RTrackedRemote, instead of RTouch, which is the only controller connected to the headset. Additionally, attaching a OVRControllerPrefab to the RightControllerAnchor of my OVRCameraRig causes my controller to appear as an Oculus Go model within VR (it previously correctly appeared as an Oculus Touch model).

I've tried a couple of workarounds so far, including using the UnityEngine.Input rather than OVRInput, using the raw input mappings for the Touch controller, manually setting the ActiveController in OVRInput to RTouch, or overwriting the input mappings within the RTrackedRemote section of OVRInput to match those of RTouch, but none have worked so far.

Has anyone encountered an issue like this before? Are there any workarounds/solutions I should try?
2 REPLIES 2

m-luebbers
Honored Guest
Update:

It looks like Unity is mistakenly identifying the headset itself as an Oculus Go, rather than an Oculus Quest. UnityEngine.XR.XRDevice.model returns 'Oculus Go', instead of the expected 'Oculus Quest'. This is rather strange, since it was working fine earlier and the target device is set to 'Quest' in the OVR Manager, and the target Oculus Platform is also set to 'Oculus Quest' in the OVR Platform Tool.

Here are the versions involved: Unity 2018.4.2f1, Oculus Integration 1.39

m-luebbers
Honored Guest
Update: Issue Resolved.

Rebuilding the manifest, as seen in this forum post: https://forums.oculusvr.com/developer/discussion/79152/project-issues-with-latest-firmware-integrati..., seems to have fixed the issue - Unity is now recognizing the headset and controllers properly