# EditorSceneManager

> Manage scenes in the Editor when it is in Edit mode.

## Definition

* **Type:** Class
* **Namespace:** [UnityEditor.SceneManagement](/engine/6000.7/script-reference/unityeditor/scenemanagement.md)
* **Assembly:** UnityEditor.CoreModule
* **Inherits from:** [SceneManager](/engine/6000.7/script-reference/unityengine/scenemanagement/scenemanager.md)

```csharp
public sealed class EditorSceneManager : SceneManager
```

## Remarks

The EditorSceneManager is a scene management system for Edit mode in the Editor. The EditorSceneManager extends the [SceneManager](/engine/6000.7/script-reference/unityengine/scenemanagement/scenemanager.md) and provides Editor-specific logic and behavior on top of SceneManager’s API.

Use the EditorSceneManager to control which scenes are displayed in the Hierarchy window by using [EditorSceneManager.OpenScene](/engine/6000.7/script-reference/unityeditor/scenemanagement/editorscenemanager/openscene.md), [EditorSceneManager.CloseScene](/engine/6000.7/script-reference/unityeditor/scenemanagement/editorscenemanager/closescene.md), or, to open multiple scenes at once, use [EditorSceneManager.RestoreSceneManagerSetup](/engine/6000.7/script-reference/unityeditor/scenemanagement/editorscenemanager/restorescenemanagersetup.md).

Note: In Play mode, use the [SceneManager](/engine/6000.7/script-reference/unityengine/scenemanagement/scenemanager.md) API to load and unload scenes.

Terminology:

* [SceneAsset](/engine/6000.7/script-reference/unityeditor/sceneasset.md) is the imported object for scene asset files with the extension ‘.unity’. It is used to set up references to scene files in Editor scripts. Note that SceneAsset is Editor-only, since paths or the index of a scene in the Build Settings is used for loading at runtime.
* [Scene](/engine/6000.7/script-reference/unityeditor/searchservice/scene.md) is an instance of a scene file when loaded with SceneManager.LoadScene in Play mode or when opened with EditorSceneManager.OpenScene in Edit mode.

When a scene file has been opened by the EditorSceneManager.OpenScene, the contents of the scene file are loaded into memory and a [Scene](/engine/6000.7/script-reference/unityeditor/searchservice/scene.md) struct handle is returned. This Scene struct is used by various Editor and runtime APIs.

**Creating a scene**

You can use [EditorSceneManager.NewScene](/engine/6000.7/script-reference/unityeditor/scenemanagement/editorscenemanager/newscene.md) to create a new scene. When you create a new Scene, it displays in the Hierarchy as "Untitled". This untitled scene has not yet been saved to disk. You can only have one "Untitled" scene at a time.

&#x20;**Saving a scene to a SceneAsset**

These are APIs you can use to save a scene to a SceneAsset on disk at the given path, either directly from code or from a Save dialog:

* [EditorSceneManager.SaveScene](/engine/6000.7/script-reference/unityeditor/scenemanagement/editorscenemanager/savescene.md)
* [EditorSceneManager.SaveScenes](/engine/6000.7/script-reference/unityeditor/scenemanagement/editorscenemanager/savescenes.md)
* [EditorSceneManager.SaveOpenScenes](/engine/6000.7/script-reference/unityeditor/scenemanagement/editorscenemanager/saveopenscenes.md)
* [EditorSceneManager.SaveModifiedScenesIfUserWantsTo](/engine/6000.7/script-reference/unityeditor/scenemanagement/editorscenemanager/savemodifiedscenesifuserwantsto.md)

**Opening and closing scenes**

Use the following to control which scenes are opened in Edit mode and shown in the Hierarchy window:

* [EditorSceneManager.OpenScene](/engine/6000.7/script-reference/unityeditor/scenemanagement/editorscenemanager/openscene.md)
* [EditorSceneManager.CloseScene](/engine/6000.7/script-reference/unityeditor/scenemanagement/editorscenemanager/closescene.md)
* [EditorSceneManager.RestoreSceneManagerSetup](/engine/6000.7/script-reference/unityeditor/scenemanagement/editorscenemanager/restorescenemanagersetup.md)

Note: The Editor requires at least one scene to be open and loaded. If you want to close all scenes, use the [NewSceneMode.Single](/engine/6000.7/script-reference/unityeditor/scenemanagement/newscenemode/single.md) with the [EditorSceneManager.NewScene](/engine/6000.7/script-reference/unityeditor/scenemanagement/editorscenemanager/newscene.md) API.

**Accessing loaded scenes**

The EditorSceneManager offers APIs to access the currently loaded scenes through its base class. For example, [SceneManager.loadedSceneCount](/engine/6000.7/script-reference/unityengine/scenemanagement/scenemanager/loadedscenecount.md), [SceneManager.GetSceneAt](/engine/6000.7/script-reference/unityengine/scenemanagement/scenemanager/getsceneat.md), and [SceneManager.GetSceneByPath](/engine/6000.7/script-reference/unityengine/scenemanagement/scenemanager/getscenebypath.md).

**Scene manipulation**

Use methods through the base SceneManager class, such as [SceneManager.MergeScenes](/engine/6000.7/script-reference/unityengine/scenemanagement/scenemanager/mergescenes.md) and [SceneManager.MoveGameObjectToScene](/engine/6000.7/script-reference/unityengine/scenemanagement/scenemanager/movegameobjecttoscene.md), to move objects between scenes.

**EditorSceneManager events**

The EditorSceneManager also exposes many events that can be used to listen to changes to scenes like: when a new scene is created, or when a scene is opened or closed in the Editor. Scripts can register on these events and then be notified when there are changes in the state of the EditorSceneManager. Refer to the Events section.

**Editor tooling scenes**

The EditorSceneManager also has the following API to managing in-memory Editor-only tooling scenes. These are called preview scenes and the lifetime of these scenes has to be maintained by you. You can use them for your own Editor tooling. These scenes are not automatically shown in the Hierarchy window.

* [EditorSceneManager.NewPreviewScene](/engine/6000.7/script-reference/unityeditor/scenemanagement/editorscenemanager/newpreviewscene.md)
* [EditorSceneManager.ClosePreviewScene](/engine/6000.7/script-reference/unityeditor/scenemanagement/editorscenemanager/closepreviewscene.md)

**Controlling the start scene in Play mode**

In any Editor script, you can set [EditorSceneManager.playModeStartScene](/engine/6000.7/script-reference/unityeditor/scenemanagement/editorscenemanager/playmodestartscene.md) if you want to mimic a custom boot scene for Play mode instead of playing the currently opened scenes from Edit mode.

&#x20;**Code sample of core EditorSceneManager APIs**

## Examples

```csharp
using UnityEngine;
using UnityEditor;
using UnityEditor.SceneManagement;
using UnityEngine.UIElements;
using UnityEditor.UIElements;
using System.Collections.Generic;

public class EditorSceneManagerTestWindow : EditorWindow
{
    private readonly string[] m_ScenePaths = { "Assets/Scene1.unity", "Assets/Scene2.unity", "Assets/Scene3.unity", "Assets/Scene4.unity" };
    private ObjectField[] m_SceneFields;

    [MenuItem("Examples/EditorSceneManager")]
    public static void ShowWindow()
    {
        var window = GetWindow<EditorSceneManagerTestWindow>();
        window.titleContent = new GUIContent("EditorSceneManager APIs");
        window.minSize = new Vector2(300, 400);
    }

    public void CreateGUI()
    {
        var root = rootVisualElement;
        root.style.paddingLeft = root.style.paddingRight = root.style.paddingBottom = root.style.paddingTop = 10;

        // Create buttons
        var createScenesButton = CreateButton("Create Test Scenes", 30, CreateScenes);
        var openSingleSceneButton = CreateButton("Open Single Scene", 10, OpenSingleScene);
        var restoreSceneManagerSetupButton = CreateButton("Restore SceneManager Setup", 10, RestoreSceneManagerSetup);
        var closeAllScenesButton = CreateButton("Close All Scenes", 10, CloseAllScenes);

        // Add buttons to rootVisualElement
        root.Add(createScenesButton);
        root.Add(openSingleSceneButton);
        root.Add(restoreSceneManagerSetupButton);
        root.Add(closeAllScenesButton);

        // Add title
        var titleLabel = new Label("Scene Asset References");
        titleLabel.style.fontSize = 12;
        titleLabel.style.marginBottom = 10;
        titleLabel.style.marginTop = 30;
        titleLabel.style.unityFontStyleAndWeight = FontStyle.Bold;
        root.Add(titleLabel);

        // Add a couple of object fields for picking SceneAssets
        const int kNumObjectFields = 5;
        m_SceneFields = new ObjectField[kNumObjectFields];
        for(int i=0; i<m_SceneFields.Length; i++)
        {
            var sceneField = new ObjectField()
            {
                objectType = typeof(SceneAsset),
                allowSceneObjects = false
            };
            root.Add(sceneField);
            m_SceneFields[i] = sceneField;
        }

        var openReferencedScenesButton = CreateButton("Open Referenced Scenes", 10, OpenReferencedScenes);
        root.Add(openReferencedScenesButton);
    }

    private Button CreateButton(string text, float bottomMargin, System.Action clickEvent)
    {
        var button = new Button(clickEvent) { text = text };
        button.style.marginBottom = bottomMargin;
        button.style.height = 30;
        return button;
    }

    private void CreateScenes()
    {
        foreach (var scenePath in m_ScenePaths)
        {
            var scene = EditorSceneManager.NewScene(NewSceneSetup.DefaultGameObjects, NewSceneMode.Single);
            EditorSceneManager.SaveScene(scene, scenePath);
        }
    }

    private void RestoreSceneManagerSetup()
    {
        if (!EditorSceneManager.SaveCurrentModifiedScenesIfUserWantsTo())
            return;

        var sceneSetups = new List<SceneSetup>();
        for (int i = 0; i < m_ScenePaths.Length; i++)
        {
            var scenePath = m_ScenePaths[i];
            var setup = new SceneSetup
            {
                path = scenePath,
                isLoaded = true,
                isActive = (i == 0) // First scene is active
            };
            sceneSetups.Add(setup);
        }

        EditorSceneManager.RestoreSceneManagerSetup(sceneSetups.ToArray());
    }

    private void OpenSingleScene()
    {
        if (!EditorSceneManager.SaveCurrentModifiedScenesIfUserWantsTo())
            return;

        EditorSceneManager.OpenScene(m_ScenePaths[0], OpenSceneMode.Single);
    }

    private void CloseAllScenes()
    {
        if (!EditorSceneManager.SaveCurrentModifiedScenesIfUserWantsTo())
            return;

        EditorSceneManager.NewScene(NewSceneSetup.EmptyScene, NewSceneMode.Single);
    }

    private void OpenReferencedScenes()
    {
        // Check if we have valid scenes
        var sceneSetups = new List<SceneSetup>();
        bool hasValidScenes = false;

        for (int i = 0; i < m_SceneFields.Length; i++)
        {
            var sceneAsset = m_SceneFields[i].value as SceneAsset;
            if (sceneAsset != null)
            {
                hasValidScenes = true;
                var scenePath = AssetDatabase.GetAssetPath(sceneAsset);
                var sceneSetup = new SceneSetup
                {
                    path = scenePath,
                    isLoaded = true,
                    isActive = (i == 0) // First scene is active
                };
                sceneSetups.Add(sceneSetup);
            }
        }

        if (!hasValidScenes)
        {
            EditorUtility.DisplayDialog("Error", "Please assign at least one scene.", "OK");
            return;
        }

        // Save current modified scenes if necessary
        if (!EditorSceneManager.SaveCurrentModifiedScenesIfUserWantsTo())
            return;

        // Restore the scene setup
        EditorSceneManager.RestoreSceneManagerSetup(sceneSetups.ToArray());
    }
}
```

## Static Fields

| Value                                                                                                                                | Description                                                                                                                                                        |
| ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| [DefaultSceneCullingMask](/engine/6000.7/script-reference/unityeditor/scenemanagement/editorscenemanager/defaultscenecullingmask.md) | Use [SceneCullingMasks.DefaultSceneCullingMask](/engine/6000.7/script-reference/unityeditor/scenemanagement/scenecullingmasks/defaultscenecullingmask.md) instead. |

## Static Properties

| Property                                                                                                                                     | Description                                                        |
| -------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------ |
| [playModeStartScene](/engine/6000.7/script-reference/unityeditor/scenemanagement/editorscenemanager/playmodestartscene.md)                   | Loads this SceneAsset when you start Play Mode.                    |
| [preventCrossSceneReferences](/engine/6000.7/script-reference/unityeditor/scenemanagement/editorscenemanager/preventcrossscenereferences.md) | Controls whether cross-Scene references are allowed in the Editor. |
| [previewSceneCount](/engine/6000.7/script-reference/unityeditor/scenemanagement/editorscenemanager/previewscenecount.md)                     | The current amount of active preview Scenes.                       |

## Static Methods

| Method                                                                                                                                                             | Description                                                                                                                                                                                                                                                                                                             |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [CalculateAvailableSceneCullingMask](/engine/6000.7/script-reference/unityeditor/scenemanagement/editorscenemanager/calculateavailablescenecullingmask.md)         | Go through all Scenes and find the smallest unused bit in the unition of all Scene culling masks.                                                                                                                                                                                                                       |
| [ClosePreviewScene](/engine/6000.7/script-reference/unityeditor/scenemanagement/editorscenemanager/closepreviewscene.md)                                           | Closes a preview Scene created by [EditorSceneManager.NewPreviewScene](/engine/6000.7/script-reference/unityeditor/scenemanagement/editorscenemanager/newpreviewscene.md) or [EditorSceneManager.OpenPreviewScene](/engine/6000.7/script-reference/unityeditor/scenemanagement/editorscenemanager/openpreviewscene.md). |
| [CloseScene](/engine/6000.7/script-reference/unityeditor/scenemanagement/editorscenemanager/closescene.md)                                                         | Close the Scene. If removeScene flag is true, the closed Scene will also be removed from EditorSceneManager.                                                                                                                                                                                                            |
| [DetectCrossSceneReferences](/engine/6000.7/script-reference/unityeditor/scenemanagement/editorscenemanager/detectcrossscenereferences.md)                         | Detects cross-Scene references in a Scene.                                                                                                                                                                                                                                                                              |
| [EnsureUntitledSceneHasBeenSaved](/engine/6000.7/script-reference/unityeditor/scenemanagement/editorscenemanager/ensureuntitledscenehasbeensaved.md)               | Shows a save dialog if an Untitled Scene exists in the current Scene manager setup.                                                                                                                                                                                                                                     |
| [GetSceneCullingMask](/engine/6000.7/script-reference/unityeditor/scenemanagement/editorscenemanager/getscenecullingmask.md)                                       | Return the culling mask set on the given Scene.                                                                                                                                                                                                                                                                         |
| [GetSceneManagerSetup](/engine/6000.7/script-reference/unityeditor/scenemanagement/editorscenemanager/getscenemanagersetup.md)                                     | Returns the current setup of the SceneManager.                                                                                                                                                                                                                                                                          |
| [IsPreviewScene](/engine/6000.7/script-reference/unityeditor/scenemanagement/editorscenemanager/ispreviewscene.md)                                                 | Checks whether a scene is a preview scene.                                                                                                                                                                                                                                                                              |
| [IsPreviewSceneObject](/engine/6000.7/script-reference/unityeditor/scenemanagement/editorscenemanager/ispreviewsceneobject.md)                                     | Checks whether an object is part of a preview scene.                                                                                                                                                                                                                                                                    |
| [LoadSceneAsyncInPlayMode](/engine/6000.7/script-reference/unityeditor/scenemanagement/editorscenemanager/loadsceneasyncinplaymode.md)                             | This method allows you to load a Scene during playmode in the editor, without requiring the Scene to be included in the [Build Settings](/engine/6000.7/manual/building-and-publishing/build-settings.md) Scene list.                                                                                                   |
| [LoadSceneInPlayMode](/engine/6000.7/script-reference/unityeditor/scenemanagement/editorscenemanager/loadsceneinplaymode.md)                                       | This method allows you to load a Scene during playmode in the editor, without requiring the Scene to be included in the [Build Settings](/engine/6000.7/manual/building-and-publishing/build-settings.md) Scene list.                                                                                                   |
| [MarkAllScenesDirty](/engine/6000.7/script-reference/unityeditor/scenemanagement/editorscenemanager/markallscenesdirty.md)                                         | Mark all the loaded Scenes as modified.                                                                                                                                                                                                                                                                                 |
| [MarkSceneDirty](/engine/6000.7/script-reference/unityeditor/scenemanagement/editorscenemanager/markscenedirty.md)                                                 | Mark the specified Scene as modified.                                                                                                                                                                                                                                                                                   |
| [MoveSceneAfter](/engine/6000.7/script-reference/unityeditor/scenemanagement/editorscenemanager/movesceneafter.md)                                                 | Allows you to reorder the Scenes currently open in the Hierarchy window. Moves the source Scene so it comes after the destination Scene.                                                                                                                                                                                |
| [MoveSceneBefore](/engine/6000.7/script-reference/unityeditor/scenemanagement/editorscenemanager/movescenebefore.md)                                               | Allows you to reorder the Scenes currently open in the Hierarchy window. Moves the source Scene so it comes before the destination Scene.                                                                                                                                                                               |
| [NewPreviewScene](/engine/6000.7/script-reference/unityeditor/scenemanagement/editorscenemanager/newpreviewscene.md)                                               | Creates a new preview scene.                                                                                                                                                                                                                                                                                            |
| [NewScene](/engine/6000.7/script-reference/unityeditor/scenemanagement/editorscenemanager/newscene.md)                                                             | Create a new Scene.                                                                                                                                                                                                                                                                                                     |
| [OpenPreviewScene](/engine/6000.7/script-reference/unityeditor/scenemanagement/editorscenemanager/openpreviewscene.md)                                             | Opens a Scene Asset in a preview Scene.                                                                                                                                                                                                                                                                                 |
| [OpenScene](/engine/6000.7/script-reference/unityeditor/scenemanagement/editorscenemanager/openscene.md)                                                           | Open a Scene in the Editor.                                                                                                                                                                                                                                                                                             |
| [RestoreSceneManagerSetup](/engine/6000.7/script-reference/unityeditor/scenemanagement/editorscenemanager/restorescenemanagersetup.md)                             | Restore the setup of the SceneManager.                                                                                                                                                                                                                                                                                  |
| [SaveCurrentModifiedScenesIfUserWantsTo](/engine/6000.7/script-reference/unityeditor/scenemanagement/editorscenemanager/savecurrentmodifiedscenesifuserwantsto.md) | Asks the user if they want to save the current open modified Scene or Scenes in the Hierarchy.                                                                                                                                                                                                                          |
| [SaveModifiedScenesIfUserWantsTo](/engine/6000.7/script-reference/unityeditor/scenemanagement/editorscenemanager/savemodifiedscenesifuserwantsto.md)               | Asks whether the modfied input Scenes should be saved.                                                                                                                                                                                                                                                                  |
| [SaveOpenScenes](/engine/6000.7/script-reference/unityeditor/scenemanagement/editorscenemanager/saveopenscenes.md)                                                 | Save all open Scenes.                                                                                                                                                                                                                                                                                                   |
| [SaveScene](/engine/6000.7/script-reference/unityeditor/scenemanagement/editorscenemanager/savescene.md)                                                           | Save a Scene.                                                                                                                                                                                                                                                                                                           |
| [SaveScenes](/engine/6000.7/script-reference/unityeditor/scenemanagement/editorscenemanager/savescenes.md)                                                         | Save a list of Scenes.                                                                                                                                                                                                                                                                                                  |
| [SetSceneCullingMask](/engine/6000.7/script-reference/unityeditor/scenemanagement/editorscenemanager/setscenecullingmask.md)                                       | Set the culling mask on this scene to this value. Cameras will only render objects in Scenes that have the same bits set in their culling mask.                                                                                                                                                                         |

## Static Events

| Member                                                                                                                                         | Description                                                                                                             |
| ---------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- |
| [activeSceneChangedInEditMode](/engine/6000.7/script-reference/unityeditor/scenemanagement/editorscenemanager/activescenechangedineditmode.md) | Subscribe to this event to get notified when the active Scene has changed in Edit mode in the Editor.                   |
| [newSceneCreated](/engine/6000.7/script-reference/unityeditor/scenemanagement/editorscenemanager/newscenecreated.md)                           | This event is called after a new Scene has been created.                                                                |
| [sceneClosed](/engine/6000.7/script-reference/unityeditor/scenemanagement/editorscenemanager/sceneclosed.md)                                   | This event is called after a Scene has been closed in the editor.                                                       |
| [sceneClosing](/engine/6000.7/script-reference/unityeditor/scenemanagement/editorscenemanager/sceneclosing.md)                                 | This event is called before closing an open Scene after you have requested that the Scene is closed.                    |
| [sceneDirtied](/engine/6000.7/script-reference/unityeditor/scenemanagement/editorscenemanager/scenedirtied.md)                                 | This event is called after a Scene has been modified in the editor.                                                     |
| [sceneManagerSetupRestored](/engine/6000.7/script-reference/unityeditor/scenemanagement/editorscenemanager/scenemanagersetuprestored.md)       | This can be useful to get notified when the SceneManager's scenes are replaced with a set of new scenes from calls to . |
| [sceneOpened](/engine/6000.7/script-reference/unityeditor/scenemanagement/editorscenemanager/sceneopened.md)                                   | This event is called after a Scene has been opened in the editor.                                                       |
| [sceneOpening](/engine/6000.7/script-reference/unityeditor/scenemanagement/editorscenemanager/sceneopening.md)                                 | This event is called before opening an existing Scene.                                                                  |
| [sceneSaved](/engine/6000.7/script-reference/unityeditor/scenemanagement/editorscenemanager/scenesaved.md)                                     | This event is called after a Scene has been saved.                                                                      |
| [sceneSaving](/engine/6000.7/script-reference/unityeditor/scenemanagement/editorscenemanager/scenesaving.md)                                   | This event is called before a Scene is saved disk after you have requested the Scene to be saved.                       |

## Delegates

| Delegate                                                                                                                                                                    | Description                                                                                                                                                                                                                                                                                                                                                                                                       |
| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [EditorSceneManager.NewSceneCreatedCallback](/engine/6000.7/script-reference/unityeditor/scenemanagement/editorscenemanager/newscenecreatedcallback.md)                     | Callbacks of this type which have been added to the [EditorSceneManager.newSceneCreated](/engine/6000.7/script-reference/unityeditor/scenemanagement/editorscenemanager/newscenecreated.md) event are called after a new Scene has been created.                                                                                                                                                                  |
| [EditorSceneManager.SceneClosedCallback](/engine/6000.7/script-reference/unityeditor/scenemanagement/editorscenemanager/sceneclosedcallback.md)                             | Callbacks of this type which have been added to the [EditorSceneManager.sceneClosed](/engine/6000.7/script-reference/unityeditor/scenemanagement/editorscenemanager/sceneclosed.md) event are called immediately after the Scene has been closed.                                                                                                                                                                 |
| [EditorSceneManager.SceneClosingCallback](/engine/6000.7/script-reference/unityeditor/scenemanagement/editorscenemanager/sceneclosingcallback.md)                           | Callbacks of this type which have been added to the [EditorSceneManager.sceneClosing](/engine/6000.7/script-reference/unityeditor/scenemanagement/editorscenemanager/sceneclosing.md) event are called just before a Scene is closed.                                                                                                                                                                             |
| [EditorSceneManager.SceneDirtiedCallback](/engine/6000.7/script-reference/unityeditor/scenemanagement/editorscenemanager/scenedirtiedcallback.md)                           | Callbacks of this type which have been added to the [EditorSceneManager.sceneDirtied](/engine/6000.7/script-reference/unityeditor/scenemanagement/editorscenemanager/scenedirtied.md) event are called after a Scene changes from being unmodified to being modified.                                                                                                                                             |
| [EditorSceneManager.SceneManagerSetupRestoredCallback](/engine/6000.7/script-reference/unityeditor/scenemanagement/editorscenemanager/scenemanagersetuprestoredcallback.md) | Callbacks of this type which have been added to the [EditorSceneManager.sceneManagerSetupRestored](/engine/6000.7/script-reference/unityeditor/scenemanagement/editorscenemanager/scenemanagersetuprestored.md) event are called after [EditorSceneManager.RestoreSceneManagerSetup](/engine/6000.7/script-reference/unityeditor/scenemanagement/editorscenemanager/restorescenemanagersetup.md) has been called. |
| [EditorSceneManager.SceneOpenedCallback](/engine/6000.7/script-reference/unityeditor/scenemanagement/editorscenemanager/sceneopenedcallback.md)                             | Callbacks of this type which have been added to the [EditorSceneManager.sceneOpened](/engine/6000.7/script-reference/unityeditor/scenemanagement/editorscenemanager/sceneopened.md) event are called after a Scene has been opened.                                                                                                                                                                               |
| [EditorSceneManager.SceneOpeningCallback](/engine/6000.7/script-reference/unityeditor/scenemanagement/editorscenemanager/sceneopeningcallback.md)                           | Callbacks of this type which have been added to the [EditorSceneManager.sceneOpening](/engine/6000.7/script-reference/unityeditor/scenemanagement/editorscenemanager/sceneopening.md) event are called just before opening a Scene.                                                                                                                                                                               |
| [EditorSceneManager.SceneSavedCallback](/engine/6000.7/script-reference/unityeditor/scenemanagement/editorscenemanager/scenesavedcallback.md)                               | Callbacks of this type which have been added to the [EditorSceneManager.sceneSaved](/engine/6000.7/script-reference/unityeditor/scenemanagement/editorscenemanager/scenesaved.md) event are called after a Scene has been saved.                                                                                                                                                                                  |
| [EditorSceneManager.SceneSavingCallback](/engine/6000.7/script-reference/unityeditor/scenemanagement/editorscenemanager/scenesavingcallback.md)                             | Callbacks of this type which have been added to the [EditorSceneManager.sceneSaving](/engine/6000.7/script-reference/unityeditor/scenemanagement/editorscenemanager/scenesaving.md) event are called just before the Scene is saved.                                                                                                                                                                              |

## Inheritance

**Inherited Members:**

* [SceneManager.GetActiveScene()](/engine/6000.7/script-reference/unityengine/scenemanagement/scenemanager/getactivescene.md)
* [SceneManager.SetActiveScene(Scene)](/engine/6000.7/script-reference/unityengine/scenemanagement/scenemanager/setactivescene.md)
* [SceneManager.GetSceneByPath(string)](/engine/6000.7/script-reference/unityengine/scenemanagement/scenemanager/getscenebypath.md)
* [SceneManager.GetSceneByName(string)](/engine/6000.7/script-reference/unityengine/scenemanagement/scenemanager/getscenebyname.md)
* [SceneManager.GetSceneByLoadableSceneId(LoadableSceneId)](/engine/6000.7/script-reference/unityengine/scenemanagement/scenemanager/getscenebyloadablesceneid.md)
* [SceneManager.GetSceneByBuildIndex(int)](/engine/6000.7/script-reference/unityengine/scenemanagement/scenemanager/getscenebybuildindex.md)
* [SceneManager.GetSceneAt(int)](/engine/6000.7/script-reference/unityengine/scenemanagement/scenemanager/getsceneat.md)
* [SceneManager.CreateScene(string, CreateSceneParameters)](/engine/6000.7/script-reference/unityengine/scenemanagement/scenemanager/createscene.md#createscene\(string-createsceneparameters\))
* [SceneManager.LoadSceneAsync(LoadableSceneId, LoadSceneParameters)](/engine/6000.7/script-reference/unityengine/scenemanagement/scenemanager/loadsceneasync.md#loadsceneasync\(loadablesceneid-loadsceneparameters\))
* [SceneManager.MergeScenes(Scene, Scene)](/engine/6000.7/script-reference/unityengine/scenemanagement/scenemanager/mergescenes.md)
* [SceneManager.MoveGameObjectToScene(GameObject, Scene)](/engine/6000.7/script-reference/unityengine/scenemanagement/scenemanager/movegameobjecttoscene.md)
* [SceneManager.MoveGameObjectsToScene(NativeArray\<EntityId>, Scene)](/engine/6000.7/script-reference/unityengine/scenemanagement/scenemanager/movegameobjectstoscene.md#movegameobjectstoscene\(nativearrayentityid-scene\))
* [SceneManager.CreateScene(string)](/engine/6000.7/script-reference/unityengine/scenemanagement/scenemanager/createscene.md#createscene\(string\))
* [SceneManager.LoadScene(string, LoadSceneMode)](/engine/6000.7/script-reference/unityengine/scenemanagement/scenemanager/loadscene.md#loadscene\(string-loadscenemode\))
* [SceneManager.LoadScene(string, LoadSceneParameters)](/engine/6000.7/script-reference/unityengine/scenemanagement/scenemanager/loadscene.md#loadscene\(string-loadsceneparameters\))
* [SceneManager.LoadScene(int, LoadSceneMode)](/engine/6000.7/script-reference/unityengine/scenemanagement/scenemanager/loadscene.md#loadscene\(int-loadscenemode\))
* [SceneManager.LoadScene(int, LoadSceneParameters)](/engine/6000.7/script-reference/unityengine/scenemanagement/scenemanager/loadscene.md#loadscene\(int-loadsceneparameters\))
* [SceneManager.LoadSceneAsync(int, LoadSceneMode)](/engine/6000.7/script-reference/unityengine/scenemanagement/scenemanager/loadsceneasync.md#loadsceneasync\(int-loadscenemode\))
* [SceneManager.LoadSceneAsync(int, LoadSceneParameters)](/engine/6000.7/script-reference/unityengine/scenemanagement/scenemanager/loadsceneasync.md#loadsceneasync\(int-loadsceneparameters\))
* [SceneManager.LoadSceneAsync(string, LoadSceneMode)](/engine/6000.7/script-reference/unityengine/scenemanagement/scenemanager/loadsceneasync.md#loadsceneasync\(string-loadscenemode\))
* [SceneManager.LoadSceneAsync(string, LoadSceneParameters)](/engine/6000.7/script-reference/unityengine/scenemanagement/scenemanager/loadsceneasync.md#loadsceneasync\(string-loadsceneparameters\))
* [SceneManager.UnloadSceneAsync(int)](/engine/6000.7/script-reference/unityengine/scenemanagement/scenemanager/unloadsceneasync.md#unloadsceneasync\(int\))
* [SceneManager.UnloadSceneAsync(string)](/engine/6000.7/script-reference/unityengine/scenemanagement/scenemanager/unloadsceneasync.md#unloadsceneasync\(string\))
* [SceneManager.UnloadSceneAsync(Scene)](/engine/6000.7/script-reference/unityengine/scenemanagement/scenemanager/unloadsceneasync.md#unloadsceneasync\(scene\))
* [SceneManager.UnloadSceneAsync(int, UnloadSceneOptions)](/engine/6000.7/script-reference/unityengine/scenemanagement/scenemanager/unloadsceneasync.md#unloadsceneasync\(int-unloadsceneoptions\))
* [SceneManager.UnloadSceneAsync(string, UnloadSceneOptions)](/engine/6000.7/script-reference/unityengine/scenemanagement/scenemanager/unloadsceneasync.md#unloadsceneasync\(string-unloadsceneoptions\))
* [SceneManager.UnloadSceneAsync(Scene, UnloadSceneOptions)](/engine/6000.7/script-reference/unityengine/scenemanagement/scenemanager/unloadsceneasync.md#unloadsceneasync\(scene-unloadsceneoptions\))
* [SceneManager.sceneCount](/engine/6000.7/script-reference/unityengine/scenemanagement/scenemanager/scenecount.md)
* [SceneManager.sceneCountInBuildSettings](/engine/6000.7/script-reference/unityengine/scenemanagement/scenemanager/scenecountinbuildsettings.md)
* [SceneManager.sceneLoaded](/engine/6000.7/script-reference/unityengine/scenemanagement/scenemanager/sceneloaded.md)
* [SceneManager.sceneUnloaded](/engine/6000.7/script-reference/unityengine/scenemanagement/scenemanager/sceneunloaded.md)
* [SceneManager.activeSceneChanged](/engine/6000.7/script-reference/unityengine/scenemanagement/scenemanager/activescenechanged.md)
