Search Issue Tracker

Fixed in Unity 2017.3.0f3



Found in


Issue ID




[VR] Canvas should not lag behind when attached to a spatially tracked object




Priority: 7Not yet prioritized for a release


Severity: 3Secondary functionality broken

Verified FIXED with 2017.3.0b6 and SteamVR 1.2.2

Steps to reproduce:
1. Download and open attached project ""
2. Make sure HTC Vive is set up and connected
3. Make sure VR Mode is on in Player Settings\
4. Play the project

Actual result: Left hand has a cube and canvas as child object. Moving hand in space you can see that the canvas lags behind the cube and the controller

Expected: No dragging/lagging behind

Tested and reproduced on:
Windows 10
Unity 5.4.0b22, 5.4.0f1


A workaround is to modify the SteamVR_UpdatePoses.cs script.. change OnPreCull to LateUpdate. This will make the controllers line up with the UI but they will be slightly more latent, so it is only recommended updating in LateUpdate when you need UI attached to the controllers.

A proper fix for this is scheduled for 5.5 where the controllers will be updated before the UI, bringing latency down.

Comments (23)

  1. 6fd85482a163cc7a6e211851f2af8c80?d=mm


    Nov 11, 2017 11:10

    I'm still seeing this issue as well in 2017.2.0f3 for macOS

  2. D162fe8801f27d694b14956944c9227b?d=mm


    Oct 17, 2017 02:07

    This issue is definitely not resolved

  3. 1493ce68c5578c5f2d89362a7bac74e9?d=mm


    Jul 13, 2017 15:05

    I found a workaround:
    The position and rotation of the controllers is updated in the Script "SteamVR_TrackedObject.cs" in the method OnNewPoses().
    This Skript I modified like this: Instead of setting the position and rotation in OnNewPoses() i store the information in variables.
    Then i add the Unity Update() functions and do the setting there.
    I Do it in Update(), LateUpdate() and FixedUpdate() because otherwise it seamed not fluend, but that could easily caused by my vive rig setup and not the code.

  4. Fc9349e9ef3035ce6b6b549cbad3ba3b?d=mm


    Jul 07, 2017 18:12

    As a workaround, one thing you guys might try is manually updating your UI elements by listening to SteamVR's NewPosesApplied event.

  5. 9e4b404d6f00ded7fc6245b6bf5cb5ad?d=mm


    Jul 04, 2017 16:30

    I've also hit this with the new update to 1.2.2 and the fix is no longer possible.
    Any alternate fix or revert to 1.2.1 until a fix comes along?

  6. 1493ce68c5578c5f2d89362a7bac74e9?d=mm


    Jun 30, 2017 12:54

    With Steam VR 1.2.2 the SteamVR_UpdatePoses.cs script has no longer any function, so the workaround doesn't fix the problem anymore.

  7. E0cbf374d07fd947f58343f8451a0037?d=mm


    May 30, 2017 09:44

    This is a major issue for us - we have to choose between tracking quality (lag due to updating in LateUpdate) or the UI lagging. The implication was it would be solved in 5.5. Is there any update on a time scale?

  8. E4f60f2cb14981c0608e4dbf339def41?d=mm


    Apr 02, 2017 02:20

    Still happening in 5.6.0f3

  9. Ed8faf25c69cefb13a573a6568de7d24?d=mm


    Feb 17, 2017 19:00

    Confirmed and still in 5.5.1f1 :(

  10. E25809381dffca0a7ea41df327c50e31?d=mm


    Feb 17, 2017 10:53

    It seems it comes from SteamVR plugin.
    In the SteamVR_UpdatePoses.cs script, replace the OnPreCull() method with the LateUpdate() method. It worked for me.

All about bugs

View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.