Version: Unity 6.1 Alpha (6000.1)
LanguageEnglish
  • C#

EditorApplication

class in UnityEditor

Suggest a change

Success!

Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable.

Close

Submission failed

For some reason your suggested change could not be submitted. Please <a>try again</a> in a few minutes. And thank you for taking the time to help us improve the quality of Unity Documentation.

Close

Cancel

Description

Provides a collection of static utilities, properties, and events to interact with the Unity Editor application itself.

Use EditorApplication to check various properties in the current Editor session or as a building block to create custom tools and workflows. For more information on extending the Editor, refer to Support for Editor UI.

Note that this class is only available in the Editor. For similar functionalities that relate to the project you are building, refer to Application.

In the following example, we are using the EditorApplication class to create a custom workflow allowing you to start your game from the main scene, as defined in the build profile, without requiring you to navigate to it manually. We then restore your authoring state when you return to edit mode.

using UnityEditor;
using UnityEditor.SceneManagement;
using UnityEngine.SceneManagement;

[InitializeOnLoad]
public static class PlayFromFirstScene
{
    static SceneSetup[] s_PreviousAuthoringSceneSetup;

    [MenuItem("Examples/Play From First Scene", isValidateFunction: true)]
    static bool CanExecute()
    {
        return SceneManager.sceneCountInBuildSettings > 0 && !EditorApplication.isPlayingOrWillChangePlaymode;
    }

    [MenuItem("Examples/Play From First Scene")]
    static void Execute()
    {
        if (!EditorSceneManager.SaveCurrentModifiedScenesIfUserWantsTo())
            return;

        s_PreviousAuthoringSceneSetup = EditorSceneManager.GetSceneManagerSetup();
        EditorSceneManager.OpenScene(SceneUtility.GetScenePathByBuildIndex(0), OpenSceneMode.Single);
        EditorApplication.EnterPlaymode();
    }

    static PlayFromFirstScene()
    {
        EditorApplication.playModeStateChanged += OnPlaymodeStateChanged;
    }

    static void OnPlaymodeStateChanged(PlayModeStateChange state)
    {
        if (state == PlayModeStateChange.EnteredEditMode && s_PreviousAuthoringSceneSetup != null)
        {
            EditorSceneManager.RestoreSceneManagerSetup(s_PreviousAuthoringSceneSetup);
            s_PreviousAuthoringSceneSetup = null;
        }
    }
}

Additional resources: Application, EditorWindow, Editor.

Static Properties

applicationContentsPathPath to the Unity editor contents folder. (Read Only)
applicationPathGets the path to the Unity Editor application. (Read Only)
contextualPropertyMenuCallback raised whenever the user context-clicks on a property in an Inspector.
delayCallDelegate which is called once after all inspectors update.
hierarchyWindowItemOnGUIDelegate for OnGUI events for every visible list item in the HierarchyWindow.
isCompilingIs editor currently compiling scripts? (Read Only)
isCreateFromTemplateReturns true if the current project was created from a template project.
isFocusedWhether the Editor is the focused window of the operating system. (Read Only)
isPausedWhether the Editor is paused.
isPlayingWhether the Editor is in Play mode.
isPlayingOrWillChangePlaymodeEditor application state which is true only when the Editor is currently in or about to enter Play mode. (Read Only)
isRemoteConnectedIs editor currently connected to Unity Remote 4 client app.
isTemporaryProjectReturns true if the current project was created as a temporary project.
isUpdatingTrue if the Editor is currently refreshing the AssetDatabase.
modifierKeysChangedDelegate for changed keyboard modifier keys.
projectWindowItemInstanceOnGUIDelegate for OnGUI events for every visible list item in the ProjectWindow.
projectWindowItemOnGUIDelegate for OnGUI events for every visible list item in the ProjectWindow.
searchChangedCallback raised whenever the contents of a window's search box are changed.
timeSinceStartupThe time since the editor was started. (Read Only)
updateDelegate called periodically at the editor's tick rate for performing checks or updates.

Static Methods

BeepPlays system beep sound.
DirtyHierarchyWindowSortingSet the hierarchy sorting method as dirty.
EnterPlaymodeSwitches the editor to Play mode.
ExecuteMenuItemInvokes the menu item in the specified path.
ExitExit the Unity editor application.
ExitPlaymodeSwitches the editor to Edit mode.
LockReloadAssembliesPrevents loading of assemblies when it is inconvenient.
OpenProjectOpen another project.
QueuePlayerLoopUpdateNormally, a player loop update will occur in the editor when the Scene has been modified. This method allows you to queue a player loop update regardless of whether the Scene has been modified.
RepaintHierarchyWindowCan be used to ensure repaint of the HierarchyWindow.
RepaintProjectWindowCan be used to ensure repaint of the ProjectWindow.
SetTemporaryProjectKeepPathSets the path that Unity should store the current temporary project at, when the project is closed.
StepPerform a single frame step.
UnlockReloadAssembliesMust be called after LockReloadAssemblies, to reenable loading of assemblies.
UpdateMainWindowTitleForce Unity Editor to update its window title. This function is automatically called when a new scene is loaded or when the editor starts. A user having register a callback on EditorApplication.updateMainWindowTitle can call this function to force an update of the title.

Events

focusChangedRaises when the Editor gets or loses focus in the operating system.
hierarchyChangedEvent that is raised when an object or group of objects in the hierarchy changes.
pauseStateChangedEvent that is raised whenever the Editor's pause state changes.
playModeStateChangedEvent that is raised whenever the Editor's play mode state changes.
projectChangedEvent that is raised whenever the state of the project changes.
quittingUnity raises this event when the editor application is quitting.
updateMainWindowTitleRegister a custom callback to specify how the Unity Editor title can be generated. Unity will trigger this callback when a new scene is loaded , when Unity starts or when EditorApplication.UpdateMainWindowTitle is called.
wantsToQuitUnity raises this event when the editor application wants to quit.

Delegates

CallbackFunctionDelegate to be called from EditorApplication callbacks.
HierarchyWindowItemCallbackDelegate to be called for every visible list item in the HierarchyWindow on every OnGUI event.
ProjectWindowItemCallbackDelegate to be called for every visible list item in the ProjectWindow on every OnGUI event. Use this if you if you want to extend the functionality of the Project window. For example, to display information or tools relating to the assets that are visible.
ProjectWindowItemInstanceCallbackDelegate to be called for every visible list item in the ProjectWindow on every OnGUI event. Use this if you if you want to extend the functionality of the Project window. For example, to display information or tools relating to the assets or sub-assets that are visible.
SerializedPropertyCallbackFunctionDelegate to be called from EditorApplication contextual inspector callbacks.