Search Issue Tracker

Fixed in Unity 2017.2

Votes

57

Found in

5.4.0f1

Issue ID

814569

Regression

No

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

VR

-

-

Priority: 7Not yet prioritized for a release

-

Severity: 3Workaround is possible

Steps to reproduce:
1. Download and open attached project "FloatingCanvas.zip"
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

Workaround:

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 (13)

  1. 6fd85482a163cc7a6e211851f2af8c80?d=mm

    rburgoyne

    Nov 11, 2017 11:10

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

  2. D162fe8801f27d694b14956944c9227b?d=mm

    InvictusCo

    Oct 17, 2017 02:07

    This issue is definitely not resolved

  3. 1493ce68c5578c5f2d89362a7bac74e9?d=mm

    manuelgoellnitz

    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

    scvnathan

    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

    DaveLloyd

    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

    manuelgoellnitz

    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

    hrgchris

    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

    jcowlesg

    Apr 02, 2017 02:20

    Still happening in 5.6.0f3

  9. Ed8faf25c69cefb13a573a6568de7d24?d=mm

    Yocal

    Feb 17, 2017 19:00

    Confirmed and still in 5.5.1f1 :(

  10. E25809381dffca0a7ea41df327c50e31?d=mm

    Crevecoeur

    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.