Hi everyone, here’s an important update regarding the UIElements roadmap.
We were very excited at the idea of sharing our early progress with UIElements for runtime with you all, working very hard at releasing a preview package around the 2019.3 timeframe, but we decided to delay it until 2020.1 instead. Let me walk you through the thinking that lead to this decision.
First, a bit of context. When the development for UIElements began, with the goal of providing a single UI framework for both extending the editor and building runtime UI, the Unity features landscape was somewhat different: Packages and DOTS where not a thing and features had to be shipped with the Unity engine. This comes with a few but considerable restrictions:
-
Iteration - Updates are released either via official builds, which happens roughly every 3 months, or by dropping custom builds, which is time consuming for us to produce, and tedious for users to deploy.
-
DOTS - It’s currently impossible for us to provide a version of UIElements that will be compatible with the DOTS runtime, or to leverage DOTS capabilities in order to increase performance.
-
Packages - Unity features are either moving, or being created, into packages, contributing to a constantly growing ecosystem, which UIElements can’t be part of. Some features, such as Addressable Asset Bundles, are particularly appealing but out of reach.
Yikes.
Moving UIElements itself into a Package is inevitable, and we’re confident it should be done sooner rather than later, for a few reasons:
-
Stability - This change will most likely impact anyone using UIElements. Doing this while in Preview will preemptively avoid a lot of disruption.
-
Quality - UIElements for runtime is still in an early stage of development and it is critical that we iterate tightly with the community in order to ship a product that you really want to use.
-
Visibility - Distributing into a package also means we’ll be able to share a more granular roadmap and publish updates at a higher frequency.
Meanwhile, we’ve decided to release the Runtime implementation seen in the Unite Copenhagen 2019 demo as part of the demo project itself.
The demo project repo, along with the Runtime implementation, can now be found here, and requires Unity 2019.3:
https://github.com/Unity-Technologies/UIElementsUniteCPH2019RuntimeDemo
This is a temporary and unsupported early preview of UIElements Runtime support. It is meant as an evaluation tool that you can use until we ship the official implementation. It is only meant as an evaluation tool. Any APIs in the project might change. That said, the general workflow should not change much going forward.
We welcome any feedback you have and will use it to inform the official package implementation as we work on it.
To see how you can use UIElements at runtime, here’s the Unite talk recording:
We know some of you will be initially disappointed by this change but we strongly believe it’s the best thing to do, which will ultimately result in a higher quality UI framework.
Cheers,