I’m working on making new UIs with a 3D/depth feel and the lack of 3D support made me keep using UGUI, and backed off using UI Toolkit (actually I don’t even know if it has came out of preview). Because I know that UGUI’s Canvas Renderer cannot batch anything non-co-planar (actually it can only batch elements on plane Z = 0, I ended up writing a custom component that will drive a Mesh Renderer, borrowing much of the mesh generation code from the RawImage component, with the added benefits of using the SRP batcher with the standard shaders.
But my question is not specific to asking when UI Toolkit will have ability to render in 3D space, or being able to utilize SRP batcher, because those made me question the status of UGUI in general.
I have always felt very confused why Unity wanted to spun up an entirely new UI system, instead of improving on the existing one. To this day, the documentation for the latest Unity version still recommends using UGUI for runtime, and only list UI Toolkit as an alternative. But from my impression, other than occasional bug fixes, there has been no improvement or new features made to the entire UGUI system.
So here are my questions:
What was the ultimate reason that calls for a new UI system, instead of improving UGUI? I know “scalability” was cited very often as the reason. If so, would you mind giving some examples?
May I know your all’s plan for UGUI, or the lack thereof? Is there really nothing planned at all to improve UGUI, despite still recommending it? For example, if UGUI is recommended for 3D/World Space UI, why not improve the batching for anything not co-planar, and perhaps support SRP batching?
Like many who have been using Unity for a long time, I distinctly remember back before 4.6 and how everyone was hyped for the much delayed new UI system that Unity would be getting. Everyone before that was using either the slower immediate-mode GUI built into unity, or asset store solutions like nGUI. Then 4.6 finally dropped. Despite some early issues, it was fast, fully-featured. and gradually fixed as time went on. Not perfect, but certainly better than the old system.
Now today, there don’t seem to be as many changes in uGUI. So, my question is- why has development seemingly stopped on uGUI? Can Unity commit to continuing its development? What new and exciting uGUI features can we look forward to?
Hi Neonlyte, thanks for taking the time to ask your question, I appreciate the thinking that went into it.
We also had that debate internally, whether or not we should keep improving existing frameworks instead of making a new one. The reasons why we chose to invest in UI Toolkit and not in existing solutions, UGUI but also IMGUI, could be summarized as such:
Maintaining, but also bringing foundational improvements to two different UI systems requires a lot of efforts and resources. Complex design issues were identified in both of them, and solving them with our current team would have taken a long time.
Having our team work on a single solution will technically accelerate the rate at which we can bring new features, stability, performance and overall improvements. Being able to share the return of an investment for both runtime and editor UI is very advantageous.
Having a single UI unlocks some interesting outcomes for us in the future, which would either be impossible of very costly to implement in two different solutions. For example, adding support for Accessibility in UI, or bringing authoring workflows at runtime, would provide amazing benefits.
It makes it easier for people to learn as well, developing deep expertise of complex systems and workflows generally require a lot of investment.
So we ultimately decided to focus all of our efforts consolidate our technologies, which I understand creates a confusing and frustrating situation. On the flip side though, we’re still committed at maintaining UGUI and IMGUI for as long as necessary, until they can be safely retired from the product by having UI Toolkit at parity with both of them.
Thank you for your answer. It has taken too long for UI Toolkit to come into feature parity, and thus it’s more than just a missed opportunity to bring improvements to existing systems, and we are stuck here with worse parts of both worlds. I hope your team either accelerate the current effort, or reconsider whether to keep UGUI collect dust.