If you look back at the last few years of Unity development, it becomes apparent that few things get finished, and even fewer get polished, and it’s even rarer that their claims match reality. With that skepticism firmly in place, it’s right to take a very critical look at why UIToolkit and UIBuilder are being pushed forward as a Game UI system when a few bits of focused endeavour on top of and around Canvases and Constraints could yield vastly better results in a much shorter time span with much more certain outcomes (I’m not saying anything about it for Editor UI).
On the surface, and if you take Unity at their word, URP, The New Input System, UIToolKit and various other new additions are significantly better than what they seek to replace.
A little testing reveals this to be largely theoretical claims, rarely borne out in reality.
It might be true one day. But it’s certainly not now.
Some minor tweaking of BuiltIn makes it vastly faster than URP, and Builtin is significantly more capable. URP is a long way from feature parity with Builtin, years after becoming “Production Ready” and requires new work to create many shaders and effects in new ways, and is often simply incapable of matching Builtin’s abilities, let alone optimised performance in the MANY ways it’s possible to fine tune Builtin.
Builtin, like Canvases and Constraints, are getting ever new leases of life because of a combination of user experience sharing optimisation and usage strategies (as per the 2017 talk above) and Moore’s Law.
URP started life as LWRP, a template designed (apparently) to demonstrate the ‘ease’ of making Scriptable Render Pipelines. To this day, it’s VERY difficult to make a Scripted Render Pipeline of your own, and the two templates originally meant to help promote making SRPs are now “Render Pipelines”, that users are being cajoled into choosing between as if they’re things in their own right, not merely templates, because they’re very silo-like environments.
Asset Store creatives making post processing features, shaders, materials and lighting setups have triple the work to do in supporting these behemoths, before version issues compound the silo issues.
The New Input System apparently makes sophisticated input config creation possible, but Unity struggles to explain it, and a couple of very minor tricks with the old system make it do just as well, with far easier to understand code, whilst adding ReWired to your project (for a very modest fee) provides an almost infinitely better version of the The New Input System. The New Input System is nowhere near finished, despite being “production ready”. Which forces the question… why does it exist?
Unfortunately, regardless, Builtin and the old Input System have been abandoned, not getting updates for years.
The Canvas/Constraints based system, with a few concessions to how it’s used, as per the 2017 speech linked, is incredibly performant and absolutely controllable and (dare I say it) somewhat intuitive and instinctive to use.
No matter what you might think of CSS and its approaches, it will never be intuitive and instinctive. And any claims Unity makes about performance need to be tested against the efficient use of Canvases and Constraints.
Keep in mind, the 2017 talk is well before Nested Prefabs were suited for use with the Canvas/Constraint system (you could make a case that the inability to reorganise nested objects is still a huge pain when using Nested Prefabs with UGUI, and I’d agree).
Oddly, I was going to use the speed with which you could make an Eve-like layout within the Canvas/Constraint system as an example, but thought it too old and static to make a good case. These days, I think The Division has set a new benchmark for all games (not just AAA), as it’s just a great interface, in a million little ways.
Interestingly, it will be (likely) years before the in-world anglings and animations of The Division’s interface will be possible with UIToolkit/UIBuilder, whereas it can all be done today with Canvases and Constraints and Nested Prefabs. Yet UGUI, like Builtin, is being abandoned.
I dearly wish Unity would do a round of Optimisation of Constraints and Canvases, and then Jobify and Burstify the performance of Canvases and Constraints, in one last round of updates, before putting it out to pasture. This would add at least a decade’s more usefulness to this wonderful little system. Kind of like how Legacy Animation lives on, and just works, for so many things, and Shuriken will go on for at least as long for basic particle effects.
As for Unity and AAA… be nice if Unity would focus on the common, majority of the market that not only needs it but uses it most. We’d happily pay royalties for the kinds of artisanal care and crafting that’d make making games with Unity less of a Package Manager vs Version lottery and take the onus of the testing and bug reporting timesink back into Unity’s QA department.