Fixed: separate outside windows/UI elements into separate canvas’s, hide when not on screen!!..(duh)
I am running my project in parallel, one with the new 4.6 UI, One with the UI Toolkit open source UI.
I noticed a steep decrease in my frame rate,.
So made a duplicate project and re-created my interface, using UI Toolkit . Same scene, etc…
Yeah if you’re on pro (which it appears to be true), could you do some CPU profiling on the UI and find out where you’re finding the biggest bottleneck? Especially, as it relates to UIToolkit’s performance in the same area? It looks like there are considerable more draw calls on the uGUI layout as well.
Hopefully, the more posts there are like this the more likely that we’ll get some more advanced options with the UI backend that we can enable to improve performance (maybe at the expense of complexity). The overheads associated with uGUI are too high compared to other UI solutions.
It’s worrying that there’s so many performance questions/concerns over uGUI at the moment.
I was hoping/expecting that a native UI system would naturally outperform anything that was building meshes (often every frame) in C# scripts (e.g. NGUI). As a mobile developer, that is the biggest reason for wanting to use uGUI.
In this case, are your textures actually atlased? (have you assigned them packing tags and checked the Sprite Packer?)
In addition you should test standalone player rather than in editor, performance drop might be caused by internal editor stuff in ugui which external tool havent that much. Last, u have 4.6p1 version? This patch contain several optimization
I believe many devs still didn’t get to the performance optimization stage with the new games they are building on new UI. We are among few devs that are actually trying to raise the awareness of slow performance of new UI (we started our game in april using beta 6 or 7).
I am just going to use a hybrid, UI Toolkit in active game play screens, keep my 60 fps!!, and Unity UI for all other screens, I purchased TexturePacker, I can have 2 sprite atlas, 1 legacy UI / 1 Unity UI…
Try my Hybrid approach: active game screens - UI Toolkit, static menus Unity UI…(I still have 10-25 flying and ground AI) - I need to have a stable 60 FPS at his stage…period
You are correct!! I just did not think I could build little canvas’s (is that the plural?)
and makes a lot of sense, unity sees the canvas as a whole entity at run time, and since I have animations, buttons with events, the event system and canvas/canvas scalar has to keep track of them…
That is why I tried to phrase this post as informational, rather than any form of derogatory criticism…
Just your ‘fresh perspective’ made a big difference…Thanks (I may have just wasted 2 days with the UI Toolkit re-build…arghh)
We currently don’t do any culling of objects its on our road map and i have a half baked implementation that need further refinement before it can be released.
If things change it needs to rebuild everything atm. you can have as many canvas’s as you want and even nest them to maintain the anchoring. As a note a canvas is like a NGUI panel where each one is its own set of draw calls. but the benefit of having less to build sometimes greatly outweighs the draw call issue.
I have confidence and patience, I can get my base player/skydome and UI/dials…running at 80 fps @ 1280X800, in the editor, with my tab attached…I am not complaining!..as a graphic designer,the new UI opens doors…
these tools are great!!
I am happy to hear that things are going well. I have been working on a project at work that uses 100% ugui for all elements. We started back in early beta and fought a ton of performance issues along the way ( Damn you cached text generator! ) but almost at the point of release we don’t have many Unity issues. The only thing we fight with is text (which our game is made up of). As a result we use Text mesh Pro. It’s a really good asset even when in beta.