I'm working on a project with both VR and Desktop modes in the same scene and using Ultraleap. I was previously using an HTC Vive and SteamVR to detect if the user put the headset on his head with the headset's proximity sensor.

I'm now switching to Vive Cosmos and OpenXR and I don't use the SteamVR plugin anymore. I get the information if the headset is mounted on the user's head with XRSupportUtil from Ultraleap. XRSupportUtil.IsUserPresent()
(It does approximately the same thing as InputDevices.GetDeviceAtXRNode(UnityEngine.XR.XRNode.Head).TryGetFeatureValue(CommonUsages.userPresence, out bool isUserPresent);).

The problem is that the Vive Cosmos doesn't give the information the same way as HTC Vive does. It switches on the user's presence only when the headset is moving and switches it off when the headset isn't moving for like 15s.

I'd like to know if there is a way to get the Vive Cosmos' proximity sensor state instead of tracking the user's presence. Or at least bypass having to wait so long before to switch to VR off.



You must log in to answer this question.

Browse other questions tagged .