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?