[UE_4.26] SteamVR: HMD worn state not updating

Hello everyone!

We’re having problems with the XRSystem->GetHMDDevice()->GetHMDWornState() function in our PC builds, we check this value in Tick() but in many case it gives back the Unknown state thus breaking our height calibration (we set the height based on if it’s state is worn or not_worn). We does not experience similar issues with Oculus, but with HTC and Index HMD’s this is almost a constant problem. I found several threads about this issue, when if the player put the HMD on too early (before launching the app, for example) then the worn state will not be updated and it stays on the default Unknown state. If this is a common, known problem, then how does other devs manage to solve these situation, what values do they check to identify the state of the HMD if this method is this unreliable? Do we have to make engine modifications in the SteamVR code to solve this?

Related topics of this issue: