Unity intends for UI(User Interface) Allows a user to interact with your application. More info
See in Glossary Toolkit to become the recommended UI system for new UI development projects, but it is still missing some features found in Unity UI (uGUI) and IMGUI. These older systems are more appropriate for certain use cases, and are required to support legacy projects.
This page provides a high-level feature comparison of UI Toolkit, Unity UI, and IMGUI, and notes about their respective approaches to UI design. Use it to help determine which UI system is appropriate for your project.
IMPORTANT |
---|
UI Toolkit is in active development. This page will update frequently as the feature set evolves. |
Your choice of UI system depends on whether you’re developing UI for the Unity Editor or runtime UI for a game or application.
Type of UI | UI Toolkit | Unity UI(uGUI) | IMGUI | Notes |
---|---|---|---|---|
Runtime (debug) | ✔ * | ✔ | ✔ | This refers to temporary runtime UI used for debug purposes. |
Runtime (in-game) | ✔ * | ✔ | Not Recommended | For performance reasons, Unity does not recommend IMGUI for in-game runtime UI. |
Unity Editor | ✔ | ❌ | ✔ | You cannot use Unity UI to make UI for the Unity Editor. |
* Requires the UI Toolkit package, currently in preview.
To create runtime UI, your choice is between UI Toolkit and Unity UI (uGUI). See Feature comparison: UI Toolkit vs. Unity UI (uGUI).
To create UI for the Unity Editor, your choice is between UI Toolkit and IMGUI. See Feature comparison: UI Toolkit vs. IMGUI.
Your team’s skill set and comfort level with different technologies is also an important consideration.
Type of user | UI Toolkit | Unity UI (uGUI) |
IMGUI | Notes |
---|---|---|---|---|
Programmer | ✔ | ✔ | ✔ | Programmers can use any game development tool or API. |
Technical Artist | Partial | ✔ | ❌ | Technical artists who are familiar with Unity’s GameObject-based tools and workflows are likely to be comfortable working with GameObjects, Components, and the Scene view. They might not be comfortable with UI Toolkit’s web-like approach or IMGUI’s pure C# approach. |
UI Designer | ✔ | Partial | ❌ | UI designers who are familiar with UI creation tools are likely to be comfortable with UI Toolkit’s document-based approach. If they are not familiar with GameObject-based workflows, they might require help from programmers and/or level designers. |
UI Toolkit is in active development. Unity adds new features with each release. Unity UI and IMGUI are established UI systems that are production-proven, but updated infrequently.
Unity UI and IMGUI might be better choices if you need features that are not yet available in UI Toolkit, or you plan on supporting or reusing older UI content.
This section compares UI Toolkit to Unity UI (along with the TextMesh Pro package) for developing runtime UI for games and applications.
It is not possible to develop user interfaces for the Unity Editor using Unity UI.
Feature | UI Toolkit | UGUI+TMP | Notes |
---|---|---|---|
Nested Prefabs | Partial | ✔ | UI Toolkit’s UXML templates support attribute overrides, which are similar to modified properties in the Unity Prefab system. UGUI is GameObject based, and supports standard Unity Prefabs. |
WYSIWYG authoring | ✔ | ✔ | Unity UI and UI Toolkit offer very different WYSIWYG authoring experiences. Because Unity UI is GameObject-based, you can set up the Scene view for WYSIWYG authoring. UI Toolkit provides the UI Builder package (currently in preview) for document-based WYSIWYG UI authoring with a web-like workflow. |
Theming | Planned | ❌ | UI Toolkit roadmap includes support for theming functionality via the UI Builder and USS imports. |
Layout & Styling Debugger | ✔ | ✔ | You can debug Unity UI interfaces in the Inspector window. UI Toolkit provides a dedicated debugger (menu: Window > UI Toolkit > Debugger) that is similar to debug tools found in major web browsers. |
Scene integration | ✔ | ✔ | Unity UI GameObjects are visible in the Scene view and the Game view. You can integrate runtime UI created with the UI Toolkit package (currently in preview) via runtime components, and display it in the Game view. |
Feature | UI Toolkit | UGUI+TMP | Notes |
---|---|---|---|
Inline styles | ✔ | ✔ | |
Cascading styles | ✔ | ❌ | |
Pseudo-states (for example, hover or active) | ✔ | ✔ | Unity UI provides simple pseudo states, and you can create complex pseudo states for it using Unity’s Animation graph. UI Toolkit supports pseudo-states via USS. |
Rich text tags | Planned | ✔ | Rich text tag support in UI Toolkit is planned as part of an update to Unity’s text rendering backend. Unity UI supports a basic set of rich text tags by default, and a larger set via the TextMesh Pro package. |
SDF text | Planned | ✔ | SDF text support in UI Toolkit is planned as part of an overhaul of Unity’s text rendering backend. Unity UI supports SDF text via the TextMesh Pro package. |
Font fallbacks | Planned | ✔ | Support for font Assets and fallback fonts in UI Toolkit is planned as part of an overhaul of Unity’s text rendering backend. Unity UI supports fallback fonts via the TextMesh Pro package. |
While Unity UI and UI Toolkit offer the same layout possibilities, their layout systems are quite different.
Feature | UI Toolkit | UGUI+TMP | Notes |
---|---|---|---|
Manual layout (absolute or relative to parent) | ✔ | ✔ | |
One-dimensional (horizontal and vertical) | ✔ | ✔ | |
Two-dimensional (grid) | Research | ✔ | Unity UI provides the GridLayoutGroup component. For UI Toolkit, Unity is investigating the possibility of implementing CSS-style grids in USS. |
Feature | UI Toolkit | UGUI+TMP | Notes |
---|---|---|---|
Integration with Unity’s new Input System | Planned | ✔ | |
Serialized events | Planned | ✔ | UI Toolkit can only bind events to elements in C#. Unity UI can serialize event bindings. |
Visual Scripting for events | Research | ❌ |
Choosing between UI Toolkit and Unity UI is a tradeoff between high performance and versatility/supported features.
UI Toolkit currently supports a smaller set of capabilities, but is easier to optimize for rendering performance. It is document-based, data driven, and uses a single shaderA small script that contains the mathematical calculations and algorithms for calculating the Color of each pixel rendered, based on the lighting input and the Material configuration. More info
See in Glossary
, material, and texture atlas to draw element hierarchies. It is a good choice for simple, screen space UI (for example, menus or heads-up displays) that includes complex hierarchies of elements, and performs well on any platform.
Unity UI is more versatile, and supports advanced rendering and text features. You can set up any visual element with a custom material, and take advantage of advanced clipping and masking features. However, these features might make it difficult to keep more complex UI within your performance budgets.
Feature | UI Toolkit | UGUI+TMP | Notes |
---|---|---|---|
Supported for Built-in Render Pipeline | ✔ | ✔ | |
Supported for Universal Render Pipeline (URP) | ✔ | ✔ | |
Supported for High Definition Render Pipeline (HDRP) | ✔ | ✔ | |
Screen-space (2D) rendering | ✔ | ✔ | |
World-space (3D) rendering | Planned | ✔ | |
Custom materials and shaders | Planned | ✔ | |
Shader Graph integration | Planned | ❌ | |
SVG integration | Planned | Planned | The com.unity.vectorgraphics package provides SVG support for Unity UI. However the package is currently in preview, and is not recommended for production. |
Anti-aliasing | Planned | Partial | Unity UI’s Screen Space-Camera, and World Space rendering modesA Standard Shader Material parameter that allows you to choose whether the object uses transparency, and if so, which type of blending mode to use. More info See in Glossary use CamerasA component which creates an image of a particular viewpoint in your scene. The output is either drawn to the screen or captured as a texture. More info See in Glossary , which apply antialiasingA technique for decreasing artifacts, like jagged lines (jaggies), in images to make them appear smoother. More info See in Glossary . |
2D rotation (object remains on the UI plane) | ✔ | ✔ | |
3D rotation | Planned | ✔ | |
Rectangle clipping | Partial | ✔ | UI toolkit supports rectangle clipping without rotation. The rectangle must be axis-aligned. |
Mask clipping | Partial | ✔ | UI toolkit supports mask clipping with 2D rotation. Unity UI supports 3D mask rotation. |
Nested masking | Partial/Planned | ✔ | UI toolkit’s nested masking is limited to one level, but does not affect draw-call batching. Multi-level nested masking is planned. Unity UI supports up to eight levels of nested masking, but breaks draw call batching every second level. |
Feature | UI Toolkit | UGUI+TMP | Notes |
---|---|---|---|
Tweening workflow | Experimental | Partial | |
Integration with Animation ClipsAnimation data that can be used for animated characters or simple animations. It is a simple “unit” piece of motion, such as (one specific instance of) “Idle”, “Walk” or “Run”. More info See in Glossary and Timeline |
Planned | ✔ |
Feature | UI Toolkit | UGUI+TMP | Notes |
---|---|---|---|
Open Source / Customizable | Planned | ✔ | The UI Toolkit package (currently in preview) is customizable. |
This section compares UI Toolkit to IMGUI for developing user interfaces for the Unity Editor.
Feature | UI Toolkit | IMGUI | Notes |
---|---|---|---|
Default InspectorsA Unity window that displays information about the currently selected GameObject, asset or project settings, allowing you to inspect and edit the values. More info See in Glossary |
Planned | ✔ | UI Toolkit will become the default UI backend for Inspector windows (for when a type does not have custom editors). |
Inspector: Edit custom object types | ✔ | ✔ | |
Inspector: Edit custom property types | ✔ | ✔ | |
Inspector: Mixed values (multi-editing) support | Planned | ✔ | |
Array / list-view control | Planned | ✔ |
Feature | UI Toolkit | IMGUI | Notes |
---|---|---|---|
Tree View | Planned | ✔ | |
Grid View | Planned | ❌ | |
Graph View | Planned | ❌ | |
Data binding: Serialized properties | ✔ | ✔ | |
Data binding from any C# type | Planned | ❌ | |
Data binding to any attribute or style value | Planned | ❌ |
Feature | UI Toolkit | IMGUI | Notes |
---|---|---|---|
Nested PrefabsAn asset type that allows you to store a GameObject complete with components and properties. The prefab acts as a template from which you can create new object instances in the scene. More info See in Glossary |
Partial | ❌ | UI Toolkit’s UXML templates support attribute overrides, which are similar to modified properties in the Unity Prefab system. |
WYSIWYG authoring | ✔ | ❌ | UI Toolkit provides the UI Builder package (currently in preview) for document-based WYSIWYG UI authoring with a web-like workflow. |
Theming | Planned | ✔ | |
Layout & Styling Debugger | ✔ | ✔ | IMGUI has a limited debugging tool for layouts and styles. UI Toolkit provides a dedicated debugger (menu: Window > UI Toolkit > Debugger) that is similar to debug tools found in major web browsers. |
SceneA Scene contains the environments and menus of your game. Think of each unique Scene file as a unique level. In each Scene, you place your environments, obstacles, and decorations, essentially designing and building your game in pieces. More info See in Glossary View integration |
✔ | ✔ |
Feature | UI Toolkit | IMGUI | Notes |
---|---|---|---|
Inline styles | ✔ | ✔ | |
Cascading styles | ✔ | ❌ | |
Pseudo-states (for example, hover or active) | ✔ | Partial | |
Rich text tags | Planned | ✔ | Rich text tag support in UI Toolkit is planned as part of an update to Unity’s text rendering backend. |
SDF text | Planned | ❌ | SDF text support in UI Toolkit is planned as part of an update to Unity’s text rendering backend. |
Font fallbacks | Planned | ✔ |
While Unity UI and IMGUI offer the same layout possibilities, their layout systems are quite different.
Feature | UI Toolkit | IMGUI | Notes |
---|---|---|---|
Manual layout (absolute or relative to parent) | ✔ | ✔ | |
One-dimensional (horizontal and vertical) | ✔ | ✔ | |
Two-dimensional (grid) | In research | ❌ | For UI Toolkit, Unity is investigating the possibility of implementing CSS-style grids in USS. |
Feature | UI Toolkit | IMGUI | Notes |
---|---|---|---|
Integration with Unity’s new Input System | Planned | ❌ | |
Serialized events | Planned | ❌ | |
Visual Scripting for events | Research | ❌ |
Feature | UI Toolkit | IMGUI | Notes |
---|---|---|---|
Supported for Built-in Render Pipeline | ✔ | ✔ | |
Supported for Universal Render Pipeline (URP) | ✔ | ✔ | |
Supported for High Definition Render Pipeline (HDRP) | ✔ | ✔ | |
Screen-space (2D) rendering | ✔ | ✔ | |
World-space (3D) rendering | Planned | ❌ | While it is technically possible to create 3D UI in IMGUI using GUI.matrix , it is not recommended. |
Custom materials and shaders | Planned | ❌ | |
Shader Graph integration | Planned | ❌ | |
SVG integration | Planned | ❌ | |
Anti-aliasing | Planned | ❌ |
Feature | UI Toolkit | IMGUI | Notes |
---|---|---|---|
Tweening workflow | Experimental | ❌ | |
Integration with Animation Clips and Timeline | Planned | ❌ |
Feature | UI Toolkit | IMGUI | Notes |
---|---|---|---|
Open Source / Customizable | Planned | The UI Toolkit package (currently in preview) is customizable. |
When you visit any website, it may store or retrieve information on your browser, mostly in the form of cookies. This information might be about you, your preferences or your device and is mostly used to make the site work as you expect it to. The information does not usually directly identify you, but it can give you a more personalized web experience. Because we respect your right to privacy, you can choose not to allow some types of cookies. Click on the different category headings to find out more and change our default settings. However, blocking some types of cookies may impact your experience of the site and the services we are able to offer.
More information
These cookies enable the website to provide enhanced functionality and personalisation. They may be set by us or by third party providers whose services we have added to our pages. If you do not allow these cookies then some or all of these services may not function properly.
These cookies allow us to count visits and traffic sources so we can measure and improve the performance of our site. They help us to know which pages are the most and least popular and see how visitors move around the site. All information these cookies collect is aggregated and therefore anonymous. If you do not allow these cookies we will not know when you have visited our site, and will not be able to monitor its performance.
These cookies may be set through our site by our advertising partners. They may be used by those companies to build a profile of your interests and show you relevant adverts on other sites. They do not store directly personal information, but are based on uniquely identifying your browser and internet device. If you do not allow these cookies, you will experience less targeted advertising. Some 3rd party video providers do not allow video views without targeting cookies. If you are experiencing difficulty viewing a video, you will need to set your cookie preferences for targeting to yes if you wish to view videos from these providers. Unity does not control this.
These cookies are necessary for the website to function and cannot be switched off in our systems. They are usually only set in response to actions made by you which amount to a request for services, such as setting your privacy preferences, logging in or filling in forms. You can set your browser to block or alert you about these cookies, but some parts of the site will not then work. These cookies do not store any personally identifiable information.