EditorWindow Manual     Reference     Scripting  
Scripting > Editor Classes > EditorWindow
EditorWindow Inherits from ScriptableObject

Derive from this class to create an editor window.

Note: This is an editor class. To use it you have to place your script in Assets/Editor inside your project folder. Editor classes are in the UnityEditor namespace so for C# scripts you need to add "using UnityEditor;" at the beginning of the script.

Create your own custom editor window that can float free or be docked as a tab, just like the native windows in the Unity interface.

Editor windows are typically opened using a menu item.

// JavaScript example:
class MyWindow extends EditorWindow {
var myString = "Hello World";
var groupEnabled = false;
var myBool = true;
var myFloat = 1.23;

// Add menu named "My Window" to the Window menu
@MenuItem ("Window/My Window")
static function Init () {
// Get existing open window or if none, make a new one:
var window : MyWindow = EditorWindow.GetWindow (MyWindow);
}

function OnGUI () {
GUILayout.Label ("Base Settings", EditorStyles.boldLabel);
myString = EditorGUILayout.TextField ("Text Field", myString);

groupEnabled = EditorGUILayout.BeginToggleGroup ("Optional Settings", groupEnabled);
myBool = EditorGUILayout.Toggle ("Toggle", myBool);
myFloat = EditorGUILayout.Slider ("Slider", myFloat, -3, 3);
EditorGUILayout.EndToggleGroup ();
}
}

// C# example:
using UnityEngine;
using UnityEditor;
public class MyWindow : EditorWindow {
string myString = "Hello World";
bool groupEnabled;
bool myBool = true;
float myFloat = 1.23f;

// Add menu named "My Window" to the Window menu
[MenuItem ("Window/My Window")]
static void Init () {
// Get existing open window or if none, make a new one:
MyWindow window = (MyWindow)EditorWindow.GetWindow (typeof (MyWindow));
}

void OnGUI () {
GUILayout.Label ("Base Settings", EditorStyles.boldLabel);
myString = EditorGUILayout.TextField ("Text Field", myString);

groupEnabled = EditorGUILayout.BeginToggleGroup ("Optional Settings", groupEnabled);
myBool = EditorGUILayout.Toggle ("Toggle", myBool);
myFloat = EditorGUILayout.Slider ("Slider", myFloat, -3, 3);
EditorGUILayout.EndToggleGroup ();
}
}

Variables
wantsMouseMove

Does the GUI in this editor window want MouseMove events?

autoRepaintOnSceneChange

Does the window automatically repaint whenever the scene has changed?

position

The position of the window in screen space.

Functions
BeginWindows

Mark the beginning area of all popup windows.

EndWindows

Close a window group started with EditorWindow.BeginWindows

ShowNotification

Show a notification message.

RemoveNotification

Stop showing notification message.

ShowTab

Focus

Moves keyboard focus to this EditorWindow.

ShowUtility

Show the EditorWindow as a floating utility window.

ShowPopup

Used for popup style windows.

Show

Show the EditorWindow.

ShowAuxWindow

Show the editor window in the auxiliary window.

Close

Close the editor window.

Repaint

Make the window repaint.

SendEvent

Sends an Event to a window.

Messages Sent
OnGUI

Implement your own editor GUI here.

Update

Called 100 times per second on all visible windows.

OnInspectorUpdate

OnInspectorUpdate is called at 10 frames per second to give the inspector a chance to update

OnDestroy

OnDestroy is called when the EditorWindow is closed.

OnSelectionChange

Called whenever the selection has changed.

OnFocus

Called when the window gets keyboard focus.

OnLostFocus

Called when the window loses keyboard focus.

OnHierarchyChange

Called whenever the scene hierarchy has changed.

OnProjectChange

Called whenever the project has changed.

Class Variables
focusedWindow

The EditorWindow which currently has keyboard focus (Read Only)

mouseOverWindow

The EditorWindow currently under the mouse cursor (Read Only)

Class Functions
GetWindow

Returns the first EditorWindow of type t which is currently on the screen.

FocusWindowIfItsOpen

Focuses the first found EditorWindow of specified type if it is open.

GetWindowWithRect

Returns the first EditorWindow of type t which is currently on the screen.

Inherited members
Inherited Variables
name

The name of the object.

hideFlags

Should the object be hidden, saved with the scene or modifiable by the user?

Inherited Functions
GetInstanceID

Returns the instance id of the object.

ToString

Returns the name of the game object.

Inherited Messages Sent
OnEnable

This function is called when the object is loaded

OnDisable

This function is called when the scriptable object goes out of scope

OnDestroy

This function is called when the scriptable object will be destroyed.

Inherited Class Functions
CreateInstance

Creates an instance of a scriptable object with className.

operator bool

Does the object exist?

Instantiate

Clones the object original and returns the clone.

Destroy

Removes a gameobject, component or asset.

DestroyImmediate

Destroys the object obj immediately. It is strongly recommended to use Destroy instead.

FindObjectsOfType

Returns a list of all active loaded objects of Type type.

FindObjectOfType

Returns the first active loaded object of Type type.

operator ==

Compares if two objects refer to the same

operator !=

Compares if two objects refer to a different object

DontDestroyOnLoad

Makes the object target not be destroyed automatically when loading a new scene.