Evil Canvas.BuildBatch

I have somewhat complex UIs on screen and when I move an UI element, even if it’s a very small text that covers only 1% of the screen, UGUI will call Canvas.BuildBatch to rebuild entire UI and it is very slow.

Now after some googling this turns out to be a common issue UGUI has but has anyone found a solution to fix this?

All I want to do is just to throw a simple notification text that pops up on the screen and fade/slides out after a short duration. I’ve tried making the text a direct child of Canvas or even created a new dedicated canvas for it but no luck. (which doesn’t make sense since there’s no need for other UIs to calculate their positions according to the text). Evil Canvas.BuldBatch will be called every frame no matter what I do.

What I’m really eager to know is, will it be fixed at some time(there’s “Perf: UI Batching Re-factor UI batch generation and multi-thread the geometry jobs” entry in Unity road map. Could it be the fix?), or is UGUI designed like this(That UIs should be kept minimal and UI elements should not animate, move,etc).

My game depends heavily on UIs(actually, UIs consists most of it) and I have to decide whether keep using ugui or switch back to NGUI.
Well…I started this project using NGUI then switched to UGUI so…it will be such a mess switching back again.

Only “fix” now is to put that text into it’s own canvas.

We’ve got source access for UI. It might be able to be adjusted.