Unity provides the following user interface (UI) toolkits for creating UI(User Interface) Allows a user to interact with your application. More info See in Glossary in either the Unity Editor or in an application:
UIElements: User Interface Elements (UIElements) is a retained-mode UI toolkit for developing user interfaces in the Unity Editor. UIElements is based on recognized web technologies and supports stylesheets, dynamic and contextual event handling, and data persistence.
Unity UI: Unity User Interface (Unity UI) is a simple UI toolkit for developing user interfaces for games and applications. Unity UI is a GameObject-based UI system that uses components and the Game View to arrange, position, and style the user interface. You cannot use Unity UI for user interfaces within the Unity Editor.
IMGUI: Immediate Mode Graphical User Interface is a code-driven UI toolkit that is mainly intended as a tool for developers. IMGUI uses the OnGUI function (and scripts that implement the OnGUI function) to draw and manage its user interface. You can use IMGUI to create in-game debugging displays, custom InspectorsA Unity window that displays information about the currently selected GameObject, Asset or Project Settings, alowing you to inspect and edit the values. More info See in Glossary for script components, and windows or tools that extend the Unity Editor. It’s not the best option for building the UI of your game or application.
Selecting a UI toolkit
You should select a UI toolkit based on your answers to the following questions:
Are you developing for a game or application, or a tool or extension to the Unity Editor?
If you are developing for a game or application, are you shipping the UI with the game or application?
Runtime dev UI
Runtime game UI
UIElements is still in active development. It is poised to become the recommended UI toolkit for both in-game and Unity Editor UI development. Until then, there are some features that are available in Unity UI and IMGUI that are not in UIElements.
In addition, changes to UIElements might not exist in previous versions of Unity. If you upgrade, you might also need to upgrade your interface from previous Unity versions.