Search Issue Tracker

Fixed in 2017.2.0f3

Votes

12

Found in

5.5.0b9

Issue ID

846631

Regression

Yes

CanvasRenderer.OnTransformChanged is called on UI objects which transforms are not moving

uGUI

-

How to reproduce:
1. Download and open the project from OwnCloud
2. Open LipSync scene
3. Open Profiler (Window -> Profiler)
4. Play the scene
5. Notice that CanvasRenderer.OnTransformChanged is called 162 times
6. Stop the scene
7. Add Button to Container in hierarchy (UI -> QuestSystemPro_Canvas ->QuestWindow_PFB -> Container)
8. Play the scene
9. Notice that CanvasRenderer.OnTransformChanged is called 174 times (+12 times)

Note: I haven't been able to reproduce this issue on new project

Reproducible: 5.5.0b1, 5.5.0b11. 5.6.0a2
Not reproducible: 5.4.2p3

Comments (5)

  1. 9d4922294de39f88b44c7461fd7f0350?d=mm

    Stanley

    Oct 17, 2019 09:31

    It's ok I've properly read you comment and I've been able to reduce the calls massively thanks!

  2. 9d4922294de39f88b44c7461fd7f0350?d=mm

    Stanley

    Oct 17, 2019 08:10

    I know this is old but I have a project on an older version of Unity.

    A workaround was mentioned but I can see it anywhere.

    Do you know what it was?

  3. E51b0bd62744e701d600ced7ba8939cf?d=mm

    x4000

    Jun 22, 2017 15:57

    Holy cow, this is a major thing to find out. The workaround is really really nice. I was having terrible spikes in GUI performance, and between 1000 and 6000 calls to this method for a gui that was just sitting there. I think this may actually be bleeding down to disabled canvases, but I'm not positive.

    This is on 5.6.1p1. The workaround of putting my overlay canvases all underneath a "Canvases" root object that is at position 0,0,0 (rather than an unmoving root object that happened to be somewhat offset) works great, though. My average calls to this method fell to under 100 per frame. Not sure why it still has a baseline of 64 calls even when nothing is happening, but I'll take it.

  4. 6157a7b7db5948e9c97eb608e7a441e1?d=mm

    ZZantal

    Feb 16, 2017 08:02

    This happens when the Canvas is parented to a GameObject (without canvas) whose position is non zero.

    If you remember it was once possible to do this and move the parent object resulting in the UI to not be centered on the screen anymore.

    They then proceeded to "fix" this behaviour.

    Programming is hard =S

  5. Afd4fa673fc8120d5a2b7e4033fe9907?d=mm

    kanyka

    Jan 20, 2017 13:51

    Reproducible in 5.5.0p3 and 5.5.0p4

Add comment

Log in to post comment

All about bugs

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