The Unity editor user interface has been mostly built around the immediate mode UI system. While IMGUI works well in some contexts, it has some serious design limitations that affect the productivity of everyone working on Editor features and extensions.
This was the motivation behind creating UIElements. UIElements is a retained-mode UI system that opens the door to improved performance and provides stylesheets, dynamic/contextual event handling, accessibility and data persistence.
Many concepts in UIElements are based on recognized web technologies. If you are familiar with XML, CSS, JQuery, the HTML DOM, and the DOM event system, then you may already be familiar with many UIElements concepts.
The goal of this guide is to help you take advantage of UIElements by describing the concepts behind the framework and by providing you with a clear explanation of how to build an interactive user interface (UI) with UIElements.
Unity provides three user interface (UI) toolkits. You should select a UI toolkit based on your answers to the following questions:
|Runtime dev UI||Runtime game UI||Editor|
|IMGUI||for debugging||not recommmended||✔|
UIElements is poised to become the toolkit of choice for both in-game and editor UI development.
UIElements is an experimental feature: it is incomplete and subject to API breaking changes. UIElements is still in active development.
In addition, changes to UIElements in 2018.3 will not be backported to older versions. If you upgrade, you must also upgrade some elements from previous Unity versions.