We’re finally ready to share our roadmap about UI. It is centred around UIElements and gives an overview of our vision for UI, what has been already shipped and what you can expect for next year.
Please keep in mind that the content for each milestone is not set in stone and is subject to change. Your feedback at this stage is very important, and might actually steer the roadmap, so please let us know what you think.
I love how detailed this roadmap is! Great job, please do this for all features in future.
Some questions/remarks:
I see the DOTS features are slated for 2020.2, but the full feature set for 2020.3. As UI developer I’d prefer to get the full set of features first and then the DOTS versions of things I already have.
What’s the difference between value and data binding?
With regards to expanding it to USS properties. I haven’t had time to dig into the new framework yet (was kind of waiting on the runtime version to do that), but one type of binding from styles to controls that I really like WPF and would love to have an equivalent of is the TemplateBinding. This binding used in styles basically means “this property can be overridden by each control that uses the style as needed”. If you don’t specify anything in the control itself the value set in the style will instead be used. So for example:
Which in this case means each label default has the size 14, but you can overwrite it if needed. This greatly reduces the amount of almost identical styles you need to write for common and small deviations.
Just binding to stuff in the ViewModel/Model/you know the code bit from the USS, would also be super welcome.
Would be lovely to have some form of SVG antialiasing in screen space overlay for Unity UI or in runtime UIElements. Since SVGs only get antialiasing in forward pipelines or in Screen Space Camera, we currently don’t get SVG antialiasing in:
Screen Space Overlay UIs.
Any deferred pipelines, for example built-in or HDRP deferred. Any post-process AA blurs fonts.
We can get crisp, truly resolution independent UIs in Unity (UIElements and Unity UI) if this could get addressed.
So does this mean UIElement will completely replace uGUI? If that is the case, will it be possible to extend the low-level rendering system of UIElement - like building custom mesh and using custom shader?
These are just updates to UIElements, not necessarily individual packages. Either way, the final state will be fairly plug-and-play, even if it’s split between multiple packages. Unity will manage these packages for you via default packages, including updates.
To be more specific:
UIElements for Editor Extensions is not a package. This is all in core Unity already.
UIElements for Runtime is and will likely stay a separate package but may become default when it comes out of preview
Simple Runtime UI and Rich Content UI are just capability goals (that span over all UIElements), not packages.