Showing results for 
Search instead for 
Did you mean: 

Hand Tracking Not Working With OpenXR Backend.

Level 4


I have just upgraded to version 31.0 of the Oculus integration for unity 2020.3.0f1. It looks like hand tracking isn't working with the OpenXR backend. 
It works fine with the legacy plugin though. 

Does anyone else have the same issue? 


Thanks for the reply. How did you get the bones from OVRPlugin? It looks like getskeleton2 is returning false and nothing is being initialized in OVRSkeleton. 

First I check handtracking status of each hand with GetHandState(), and when it returns true, I query a skeleton with GetSkeleton2()...

See the code:


        OVRPlugin.HandState _handState = new OVRPlugin.HandState();
        //bool queryHandState(Feature f)
            bool isTracked=false;
            if (OVRPlugin.GetHandState(OVRPlugin.Step.Render, f==Feature.HandTrackingLeft?OVRPlugin.Hand.HandLeft:OVRPlugin.Hand.HandRight, ref _handState))
                isTracked = (_handState.Status & OVRPlugin.HandStatus.HandTracked) != 0;
            if (isTracked)
 if (OVRPlugin.GetSkeleton2(_featureType==Feature.HandTrackingLeft?OVRPlugin.SkeletonType.HandLeft:OVRPlugin.SkeletonType.HandRight, ref _skeleton)) { initBones(); ...}

LOL, it looks like the hands are just not recognized through air link. 
After building the project, the hands are recognized. 
Thanks for your help cliv3dev!