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

All Oculus Quest developers MUST PASS the concept review prior to gaining publishing access to the Quest Store and additional resources. Submit a concept document for review as early in your Quest application development cycle as possible: https://developer.oculus.com/quest-pitch/

For additional information and context, please see "Submitting Your App to the Oculus Quest Store".
Welcome to the Oculus Developer Forums!

Your participation on the forum is subject to the Oculus Code of Conduct.

In general, please be respectful and kind. If you violate the Oculus Code of Conduct, your access to the developer forums may be revoked at the discretion of Oculus staff.

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

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?


  • m-luebbersm-luebbers Posts: 3

    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-luebbersm-luebbers Posts: 3
    Update: Issue Resolved.

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