# EditorGUI

> These work pretty much like the normal GUI functions - and also have matching implementations in EditorGUILayout.

## Definition

* **Type:** Class
* **Namespace:** [UnityEditor](/engine/6000.7/script-reference/unityeditor.md)
* **Assembly:** UnityEditor.CoreModule

```csharp
public sealed class EditorGUI
```

## Static Properties

| Property                                                                                  | Description                                                                            |
| ----------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- |
| [actionKey](/engine/6000.7/script-reference/unityeditor/editorgui/actionkey.md)           | Is the platform-dependent "action" modifier key held down? (Read Only)                 |
| [indentLevel](/engine/6000.7/script-reference/unityeditor/editorgui/indentlevel.md)       | The indent level of the field labels.                                                  |
| [showMixedValue](/engine/6000.7/script-reference/unityeditor/editorgui/showmixedvalue.md) | Makes the following controls give the appearance of editing multiple different values. |

## Static Methods

| Method                                                                                                                        | Description                                                                                                                                                                                                                                                                                                                                                      |
| ----------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [BeginChangeCheck](/engine/6000.7/script-reference/unityeditor/editorgui/beginchangecheck.md)                                 | Starts a new code block to check for GUI changes.                                                                                                                                                                                                                                                                                                                |
| [BeginDisabledGroup](/engine/6000.7/script-reference/unityeditor/editorgui/begindisabledgroup.md)                             | Create a group of controls that can be disabled.                                                                                                                                                                                                                                                                                                                 |
| [BeginFoldoutHeaderGroup](/engine/6000.7/script-reference/unityeditor/editorgui/beginfoldoutheadergroup.md)                   | Make a label with a foldout arrow to the left of it.                                                                                                                                                                                                                                                                                                             |
| [BeginProperty](/engine/6000.7/script-reference/unityeditor/editorgui/beginproperty.md)                                       | Create a Property wrapper, useful for making regular GUI controls work with [SerializedProperty](/engine/6000.7/script-reference/unityeditor/serializedproperty.md).                                                                                                                                                                                             |
| [BoundsField](/engine/6000.7/script-reference/unityeditor/editorgui/boundsfield.md)                                           | Makes Center and Extents field for entering a [Bounds](/engine/6000.7/script-reference/unityengine/bounds.md).                                                                                                                                                                                                                                                   |
| [BoundsIntField](/engine/6000.7/script-reference/unityeditor/editorgui/boundsintfield.md)                                     | Makes Position and Size field for entering a [BoundsInt](/engine/6000.7/script-reference/unityengine/boundsint.md).                                                                                                                                                                                                                                              |
| [ColorField](/engine/6000.7/script-reference/unityeditor/editorgui/colorfield.md)                                             | Makes a field for selecting a [Color](/engine/6000.7/script-reference/unityengine/color.md).                                                                                                                                                                                                                                                                     |
| [CurveField](/engine/6000.7/script-reference/unityeditor/editorgui/curvefield.md)                                             | Makes a field for editing an [AnimationCurve](/engine/6000.7/script-reference/unityengine/animationcurve.md).                                                                                                                                                                                                                                                    |
| [DelayedDoubleField](/engine/6000.7/script-reference/unityeditor/editorgui/delayeddoublefield.md)                             | Makes a delayed text field for entering doubles.                                                                                                                                                                                                                                                                                                                 |
| [DelayedFloatField](/engine/6000.7/script-reference/unityeditor/editorgui/delayedfloatfield.md)                               | Makes a delayed text field for entering floats.                                                                                                                                                                                                                                                                                                                  |
| [DelayedIntField](/engine/6000.7/script-reference/unityeditor/editorgui/delayedintfield.md)                                   | Makes a delayed text field for entering integers.                                                                                                                                                                                                                                                                                                                |
| [DelayedTextField](/engine/6000.7/script-reference/unityeditor/editorgui/delayedtextfield.md)                                 | Makes a delayed text field.                                                                                                                                                                                                                                                                                                                                      |
| [DoubleField](/engine/6000.7/script-reference/unityeditor/editorgui/doublefield.md)                                           | Makes a text field for entering doubles.                                                                                                                                                                                                                                                                                                                         |
| [DrawPreviewTexture](/engine/6000.7/script-reference/unityeditor/editorgui/drawpreviewtexture.md)                             | Draws the texture within a rectangle.                                                                                                                                                                                                                                                                                                                            |
| [DrawRect](/engine/6000.7/script-reference/unityeditor/editorgui/drawrect.md)                                                 | Draws a filled rectangle of color at the specified position and size within the current editor window.                                                                                                                                                                                                                                                           |
| [DrawTextureAlpha](/engine/6000.7/script-reference/unityeditor/editorgui/drawtexturealpha.md)                                 | Draws the alpha channel of a texture within a rectangle.                                                                                                                                                                                                                                                                                                         |
| [DropdownButton](/engine/6000.7/script-reference/unityeditor/editorgui/dropdownbutton.md)                                     | Makes a button that reacts to mouse down, for displaying your own dropdown content.                                                                                                                                                                                                                                                                              |
| [DropShadowLabel](/engine/6000.7/script-reference/unityeditor/editorgui/dropshadowlabel.md)                                   | Draws a label with a drop shadow.                                                                                                                                                                                                                                                                                                                                |
| [EndChangeCheck](/engine/6000.7/script-reference/unityeditor/editorgui/endchangecheck.md)                                     | Ends a code block and checks for any GUI changes.                                                                                                                                                                                                                                                                                                                |
| [EndDisabledGroup](/engine/6000.7/script-reference/unityeditor/editorgui/enddisabledgroup.md)                                 | Ends a disabled group started with BeginDisabledGroup.                                                                                                                                                                                                                                                                                                           |
| [EndFoldoutHeaderGroup](/engine/6000.7/script-reference/unityeditor/editorgui/endfoldoutheadergroup.md)                       | Closes a group started with BeginFoldoutHeaderGroup. Additional Resources: [EditorGUILayout.BeginFoldoutHeaderGroup](/engine/6000.7/script-reference/unityeditor/editorguilayout/beginfoldoutheadergroup.md).                                                                                                                                                    |
| [EndProperty](/engine/6000.7/script-reference/unityeditor/editorgui/endproperty.md)                                           | Ends a Property wrapper started with [EditorGUI.BeginProperty](/engine/6000.7/script-reference/unityeditor/editorgui/beginproperty.md).                                                                                                                                                                                                                          |
| [EnumFlagsField](/engine/6000.7/script-reference/unityeditor/editorgui/enumflagsfield.md)                                     | Displays a menu with an option for every value of the enum type when clicked. An option for the value `0` with name "Nothing" and an option for the value `~0` (that is, all bits set) with the name "Everything" are always displayed at the top of the menu. The names for the values `0` and `~0` can be overriden by defining these values in the enum type. |
| [EnumPopup](/engine/6000.7/script-reference/unityeditor/editorgui/enumpopup.md)                                               | Makes an enum popup selection field.                                                                                                                                                                                                                                                                                                                             |
| [FloatField](/engine/6000.7/script-reference/unityeditor/editorgui/floatfield.md)                                             | Makes a text field for entering floats.                                                                                                                                                                                                                                                                                                                          |
| [FocusTextInControl](/engine/6000.7/script-reference/unityeditor/editorgui/focustextincontrol.md)                             | Move keyboard focus to a named text field and begin editing of the content.                                                                                                                                                                                                                                                                                      |
| [Foldout](/engine/6000.7/script-reference/unityeditor/editorgui/foldout.md)                                                   | Makes a label with a foldout arrow to the left of it.                                                                                                                                                                                                                                                                                                            |
| [GetPropertyHeight](/engine/6000.7/script-reference/unityeditor/editorgui/getpropertyheight.md)                               | Get the height needed for a [EditorGUI.PropertyField](/engine/6000.7/script-reference/unityeditor/editorgui/propertyfield.md) control.                                                                                                                                                                                                                           |
| [GradientField](/engine/6000.7/script-reference/unityeditor/editorgui/gradientfield.md)                                       | Makes a field for editing a [Gradient](/engine/6000.7/script-reference/unityengine/gradient.md).                                                                                                                                                                                                                                                                 |
| [HandlePrefixLabel](/engine/6000.7/script-reference/unityeditor/editorgui/handleprefixlabel.md)                               | Makes a label for some control.                                                                                                                                                                                                                                                                                                                                  |
| [HelpBox](/engine/6000.7/script-reference/unityeditor/editorgui/helpbox.md)                                                   | Makes a help box with a message to the user.                                                                                                                                                                                                                                                                                                                     |
| [InspectorTitlebar](/engine/6000.7/script-reference/unityeditor/editorgui/inspectortitlebar.md)                               | Makes an inspector-window-like titlebar.                                                                                                                                                                                                                                                                                                                         |
| [IntField](/engine/6000.7/script-reference/unityeditor/editorgui/intfield.md)                                                 | Makes a text field for entering integers.                                                                                                                                                                                                                                                                                                                        |
| [IntPopup](/engine/6000.7/script-reference/unityeditor/editorgui/intpopup.md)                                                 | Makes an integer popup selection field.                                                                                                                                                                                                                                                                                                                          |
| [IntSlider](/engine/6000.7/script-reference/unityeditor/editorgui/intslider.md)                                               | Makes a slider the user can drag to change an integer value between a min and a max.                                                                                                                                                                                                                                                                             |
| [LabelField](/engine/6000.7/script-reference/unityeditor/editorgui/labelfield.md)                                             | Makes a label field. (Useful for showing read-only info.)                                                                                                                                                                                                                                                                                                        |
| [LargeSplitButtonWithDropdownList](/engine/6000.7/script-reference/unityeditor/editorgui/largesplitbuttonwithdropdownlist.md) | Creates a large button that contains a regular button section and an arrow to open a dropdown menu.                                                                                                                                                                                                                                                              |
| [LayerField](/engine/6000.7/script-reference/unityeditor/editorgui/layerfield.md)                                             | Makes a layer selection field.                                                                                                                                                                                                                                                                                                                                   |
| [LinkButton](/engine/6000.7/script-reference/unityeditor/editorgui/linkbutton.md)                                             | Make a clickable link label.                                                                                                                                                                                                                                                                                                                                     |
| [LogarithmicIntSlider](/engine/6000.7/script-reference/unityeditor/editorgui/logarithmicintslider.md)                         | Makes a text field for entering an integer on a logarithmic scale.                                                                                                                                                                                                                                                                                               |
| [LongField](/engine/6000.7/script-reference/unityeditor/editorgui/longfield.md)                                               | Makes a text field for entering long integers.                                                                                                                                                                                                                                                                                                                   |
| [MaskField](/engine/6000.7/script-reference/unityeditor/editorgui/maskfield.md)                                               | Makes a field for masks.                                                                                                                                                                                                                                                                                                                                         |
| [MinMaxSlider](/engine/6000.7/script-reference/unityeditor/editorgui/minmaxslider.md)                                         | Makes a special slider the user can use to specify a range between a min and a max.                                                                                                                                                                                                                                                                              |
| [MultiFloatField](/engine/6000.7/script-reference/unityeditor/editorgui/multifloatfield.md)                                   | Makes a multi-control with text fields for entering multiple floats in the same line.                                                                                                                                                                                                                                                                            |
| [MultiIntField](/engine/6000.7/script-reference/unityeditor/editorgui/multiintfield.md)                                       | Makes a multi-control with text fields for entering multiple integers in the same line.                                                                                                                                                                                                                                                                          |
| [MultiPropertyField](/engine/6000.7/script-reference/unityeditor/editorgui/multipropertyfield.md)                             | Makes a multi-control with several property fields in the same line.                                                                                                                                                                                                                                                                                             |
| [ObjectField](/engine/6000.7/script-reference/unityeditor/editorgui/objectfield.md)                                           | Makes an object field. You can assign objects either by drag and drop objects or by selecting an object using the Object Picker.                                                                                                                                                                                                                                 |
| [PasswordField](/engine/6000.7/script-reference/unityeditor/editorgui/passwordfield.md)                                       | Makes a text field where the user can enter a password.                                                                                                                                                                                                                                                                                                          |
| [Popup](/engine/6000.7/script-reference/unityeditor/editorgui/popup.md)                                                       | Makes a generic popup selection field.                                                                                                                                                                                                                                                                                                                           |
| [PrefixLabel](/engine/6000.7/script-reference/unityeditor/editorgui/prefixlabel.md)                                           | Makes a label in front of some control.                                                                                                                                                                                                                                                                                                                          |
| [ProgressBar](/engine/6000.7/script-reference/unityeditor/editorgui/progressbar.md)                                           | Makes a progress bar.                                                                                                                                                                                                                                                                                                                                            |
| [PropertyField](/engine/6000.7/script-reference/unityeditor/editorgui/propertyfield.md)                                       | Use this to make a field for a [SerializedProperty](/engine/6000.7/script-reference/unityeditor/serializedproperty.md) in the Editor.                                                                                                                                                                                                                            |
| [RectField](/engine/6000.7/script-reference/unityeditor/editorgui/rectfield.md)                                               | Makes an X, Y, W, and H field for entering a [Rect](/engine/6000.7/script-reference/unityengine/rect.md).                                                                                                                                                                                                                                                        |
| [RectIntField](/engine/6000.7/script-reference/unityeditor/editorgui/rectintfield.md)                                         | Makes an X, Y, W, and H field for entering a [RectInt](/engine/6000.7/script-reference/unityengine/rectint.md).                                                                                                                                                                                                                                                  |
| [RenderingLayerMaskField](/engine/6000.7/script-reference/unityeditor/editorgui/renderinglayermaskfield.md)                   | Makes a rendering layer selection field.                                                                                                                                                                                                                                                                                                                         |
| [SelectableLabel](/engine/6000.7/script-reference/unityeditor/editorgui/selectablelabel.md)                                   | Makes a selectable label field. (Useful for showing read-only info that can be copy-pasted.)                                                                                                                                                                                                                                                                     |
| [Slider](/engine/6000.7/script-reference/unityeditor/editorgui/slider.md)                                                     | Makes a slider the user can drag to change a value between a min and a max.                                                                                                                                                                                                                                                                                      |
| [TagField](/engine/6000.7/script-reference/unityeditor/editorgui/tagfield.md)                                                 | Makes a tag selection field.                                                                                                                                                                                                                                                                                                                                     |
| [TextArea](/engine/6000.7/script-reference/unityeditor/editorgui/textarea.md)                                                 | Makes a text area.                                                                                                                                                                                                                                                                                                                                               |
| [TextField](/engine/6000.7/script-reference/unityeditor/editorgui/textfield.md)                                               | Makes a text field.                                                                                                                                                                                                                                                                                                                                              |
| [Toggle](/engine/6000.7/script-reference/unityeditor/editorgui/toggle.md)                                                     | Makes a toggle.                                                                                                                                                                                                                                                                                                                                                  |
| [ToggleLeft](/engine/6000.7/script-reference/unityeditor/editorgui/toggleleft.md)                                             | Makes a toggle field where the toggle is to the left and the label immediately to the right of it.                                                                                                                                                                                                                                                               |
| [Vector2Field](/engine/6000.7/script-reference/unityeditor/editorgui/vector2field.md)                                         | Makes an X and Y field for entering a [Vector2](/engine/6000.7/script-reference/unityengine/vector2.md).                                                                                                                                                                                                                                                         |
| [Vector2IntField](/engine/6000.7/script-reference/unityeditor/editorgui/vector2intfield.md)                                   | Makes an X and Y integer field for entering a [Vector2Int](/engine/6000.7/script-reference/unityengine/vector2int.md).                                                                                                                                                                                                                                           |
| [Vector3Field](/engine/6000.7/script-reference/unityeditor/editorgui/vector3field.md)                                         | Makes an X, Y, and Z field for entering a [Vector3](/engine/6000.7/script-reference/unityengine/vector3.md).                                                                                                                                                                                                                                                     |
| [Vector3IntField](/engine/6000.7/script-reference/unityeditor/editorgui/vector3intfield.md)                                   | Makes an X, Y, and Z integer field for entering a [Vector3Int](/engine/6000.7/script-reference/unityengine/vector3int.md).                                                                                                                                                                                                                                       |
| [Vector4Field](/engine/6000.7/script-reference/unityeditor/editorgui/vector4field.md)                                         | Makes an X, Y, Z, and W field for entering a [Vector4](/engine/6000.7/script-reference/unityengine/vector4.md).                                                                                                                                                                                                                                                  |

## Static Events

| Member                                                                                        | Description                                             |
| --------------------------------------------------------------------------------------------- | ------------------------------------------------------- |
| [hyperLinkClicked](/engine/6000.7/script-reference/unityeditor/editorgui/hyperlinkclicked.md) | Event used to react on clicks on a text hyperlink part. |

## Classes

| Class                                                                                                       | Description                                                                                                                                                          |
| ----------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [EditorGUI.ChangeCheckScope](/engine/6000.7/script-reference/unityeditor/editorgui/changecheckscope.md)     | Check if any control was changed inside a block of code.                                                                                                             |
| [EditorGUI.DisabledGroupScope](/engine/6000.7/script-reference/unityeditor/editorgui/disabledgroupscope.md) | Create a group of controls that can be disabled.                                                                                                                     |
| [EditorGUI.IndentLevelScope](/engine/6000.7/script-reference/unityeditor/editorgui/indentlevelscope.md)     | Scope for managing the indent level of the field labels.                                                                                                             |
| [EditorGUI.PropertyScope](/engine/6000.7/script-reference/unityeditor/editorgui/propertyscope.md)           | Create a Property wrapper, useful for making regular GUI controls work with [SerializedProperty](/engine/6000.7/script-reference/unityeditor/serializedproperty.md). |

## Structs

| Struct                                                                                                | Description                                                            |
| ----------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------- |
| [EditorGUI.DisabledScope](/engine/6000.7/script-reference/unityeditor/editorgui/disabledscope.md)     | Create a group of controls that can be disabled.                       |
| [EditorGUI.MixedValueScope](/engine/6000.7/script-reference/unityeditor/editorgui/mixedvaluescope.md) | Creates a group of controls that can visually represent a mixed value. |

## Enums

| Enum                                                                                                        | Description                                                                                                                                                    |
| ----------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [EditorGUI.PropertyVisibility](/engine/6000.7/script-reference/unityeditor/editorgui/propertyvisibility.md) | Specifies which SerializedProperties are drawn by [EditorGUI.MultiPropertyField](/engine/6000.7/script-reference/unityeditor/editorgui/multipropertyfield.md). |
