XR Hands not working when holding Quest 3 controllers

Hello,

I have OpenXR Plugin, XR Plugin Management, XR Interaction Toolkit, XR Hands, and Unity OpenXR Meta installed.

On a Quest 3, when I test either of the XR Hand Sample scenes, the hand tracking works great.

However, if I pickup/hold a Quest 3 Controller, the hand tracking suddenly stops.

I’ve gone through the Quest 3 settings and enabled the various Hand Tracking options, and no combination seems to affect this.

According to this video, it’s possible using Meta XR All-in-One, but I’m looking to go multiplatform and would rather avoid having to manage multiple SDKs.

Can any clarify if I’m missing something?

Thanks!

I don’t think it’s possible to use the multi modal mode with the OpenXR extensions provided by built in setup unfortunately.

We’re always looking to improve platform support parity, but for now you’ll need metas all in one sdk to use that feature.

Hello,

I have the same problem here. Is there a way to change from controller tracking to hand tracking manually? I tried to add a toggle in my UI and enable hands/disable controllers and vice versa, but the problem is the same: controllers stop tracking position and rotation. I tried to stop the InputSubsystem and start it again. Any Ideas?

Unity v.2022.3.62 f2
XR PluginManagement v.4.4.0
XR Interaction Toolkit v.2.6.5
XR Hands v.1.4.3
The project is a StandAlone Pc with HDRP and DX12.
The headset is a Meta Quest 3.

I did this in my code:

InputDevice device = InputDevices.GetDeviceAtXRNode(XRNode.LeftHand);

device.TryGetFeatureValue(CommonUsages.isTracked, out bool isTracked))

if(!isTracked)
{
     XRInputSubsystem subsystem = GetXRInputSubsystem();
  
     subsystem.Stop();
     subsystem.Start();
     subsystem.TryRecenter();
  
     device.TryGetFeatureValue(CommonUsages.devicePosition, out _);
     device.TryGetFeatureValue(CommonUsages.deviceRotation, out _);
}

Has anyone managed to get this to work?
I’m looking for both hand tracking and controllers in a StandAlone PC compilation with HDRP and DX12.
I want to continue using OpenXR. I’m trying to manually switch between hand tracking and controllers.
I would appreciate any suggestions. Thank you.

I have found that my problem is caused because I stop the VR subsystems when the game begins. My game begins without VR, and at a certain point, the user enables the VR view. If I run the game with the subsystems enabled from the beginning, then everything works fine. I need to stop and start the VR subsystems.

Hey sorry for late reply. First of all, big respect for updating your post with your solution.
I just want to be clear, though. Are you able to get Quest 3 hand tracking working simultaneously with the controllers, or just swapping from one mode to another?

Unfortunately, this is still only possible using the Meta SDK, which enables the specific OpenXR extension that allows multi-modal input.

hello, I apologize for leaving a Reply that is unrelated to this article.
can i get some your help in this post?

I would be very grateful if you could take the time to help me.
thanks, have a nice day.