cancel
Showing results for 
Search instead for 
Did you mean: 

Quest and Unity built-in XR vs XR Plugin - detecting Quest hands as XRDevice

Fingerbob
Explorer
Hi! I'm currently looking to update my project from using the Unity built-in XR system, moving over to the new XR plugin system. I'm using Unity 2019.3.13f1 with all the latest respective packages (as of this week).

With the current Unity built-in XR system, I can use the UnityEngine.XR.InputDevices.deviceConnected / deviceDisconnected callbacks, which will successfully indicate when a Touch device connects or disconnects. They also successfully respond with a device when a user's hand is detected - the device is still named "Oculus Quest Controller - (left/right)" but I can then query via the OVRPlugin to see whether the device is a Touch controller or a Hand using OVRPlugin.GetControllers().

After switching to the XR plugin system, I've found that I get callbacks for the Quest Touch controllers, but the callbacks don't fire for Hands - in fact, there's no XRDevice for the hands as far as Unity is concerned; UnityEngine.XR.InputDevices.GetDevices(...) only shows "Oculus Quest" (the HMD) as a device.

Is this expected behaviour, or have I missed a setting / config somewhere that should enable the hands to show up as a Unity XRDevice? As far as I can tell, everything else is the same as my (previously working) built-in XR system version, i.e. the manifest is the same, etc.

Any help you good folks can provide would be awesome.


2 REPLIES 2

physto
Protege
This is more of Unity question than an Oculus one. Try the Unity forums.

Unity XR isn't really baked yet. Not surprised it lags behind Oculus features.

Fingerbob
Explorer
My gut is telling me that the issue lies in the Oculus XR plugin (rather than the Unity XRDevice detection), given that the Unity Builtin stuff works fine, but the Oculus Plugin stuff doesn't. It would be great to have a confirmation from someone (anyone?) that it does work, or that it's not expected to work but will in the future, or that I'm going to have to sit on my hands and wait for it to get resolved "somewhere" at some future point. Surely I'm not the only person looking at this?