Delay when parenting a world positioned canvas to a tracked object using SteamVR.

Hi folks!

I’m making a game for HTC Vive in Unity 5.2.0f3 using the SteamVR plugin.

When I create a world positioned canvas and parent it to an object with the SteamVR_TrackedObject component to follow the Vive controller, the UI follow the object, as expected, but with a small but very noticeable delay.

I was poking on its guts to try to undesrtand the problem and I think that it could be a problem on the way that the SteamVR_TrackedObject updates the object’s transform: SteamVR_TrackedObject.OnNewPoses, which actually updates the position and rotation of the object, is called when a “new_poses” event is broadcasted through the SteamVR_Utils.Event channel and this event is broadcasted by SteamVR_Render.RenderLoop coroutine.

Now I’m wondering if this pipeline leads to a late update of the object’s transform and, somehow, the canvas is always updated with a frame of delay.

Does anybody here had the same problem?

Thanks!
Fred

Hey Fred, could you send me a PM? Could use some help regarding issues with using Unity and HTC Vive.

Send me an email in frederico.zveiter@gmail.com. Cheers.

Did you mange to resolve this, we are having the same issue.

Open SteamVR_UpdatePoses.cs file , and change OnPreCull— > LateUpdate.
that works for me.

This worked great for me. Thanks!