# IMGUI (Immediate Mode GUI)

> A legacy, code-driven UI system that uses the OnGUI function to draw and manage UI. Use IMGUI to create custom Inspectors for script components, extensions for the Unity Editor, and in-game debugging displays.

IMGUI (Immediate Mode GUI) is an entirely separate feature to Unity's main GameObject-based UI System. IMGUI is a code-driven GUI system, and is mainly intended as a tool for programmers.

| **Topic**                                                                                                         | **Description**                                                                                |
| ----------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- |
| **[Introduction to IMGUI (Immediate Mode GUI)](/engine/6000.7/manual/uitoolkits/ui-imgui/guiscripting-guide.md)** | Understand IMGUI and how to use `OnGUI` calls to create in-game and in-Editor windows.         |
| **[IMGUI Basics](/engine/6000.7/manual/uitoolkits/ui-imgui/gui-basics.md)**                                       | Use scripts to create text, labels, textures, and interactive states.                          |
| **[IMGUI Controls](/engine/6000.7/manual/uitoolkits/ui-imgui/gui-controls.md)**                                   | Reference for standard IMGUI controls.                                                         |
| **[Customize IMGUI controls](/engine/6000.7/manual/uitoolkits/ui-imgui/gui-customization.md)**                    | Change the visual appearance and state backgrounds of controls.                                |
| **[IMGUI Layout Modes](/engine/6000.7/manual/uitoolkits/ui-imgui/gui-layout.md)**                                 | Position elements precisely with Fixed Layout or let Unity arrange them with Automatic Layout. |
| **[Extending IMGUI](/engine/6000.7/manual/uitoolkits/ui-imgui/gui-extending.md)**                                 | Build compound controls from standard ones and intercept events to process custom user input.  |
| **[GUI Skin (IMGUI System)](/engine/6000.7/manual/uitoolkits/ui-imgui/class-guiskin.md)**                         | Reference for applying a single set of styles across your entire user interface.               |
| **[GUI Style (IMGUI System)](/engine/6000.7/manual/uitoolkits/ui-imgui/class-guistyle.md)**                       | Reference for the custom attributes that define the appearance of a single IMGUI control.      |
| **[Extending the Editor with IMGUI](/engine/6000.7/manual/uitoolkits/ui-imgui/extending-the-editor.md)**          | Create custom inspector windows, Editor Windows, and property drawers for your tools.          |

## Additional resources

* [Comparison of UI systems in Unity](/engine/6000.7/manual/uitoolkits/ui-system-compare.md)
* [UI Toolkit](/engine/6000.7/manual/uitoolkits/uielements.md)
