LanguageEnglish
  • C#

Scene

struct in UnityEngine.SceneManagement

/

Implemented in:UnityEngine.CoreModule

Description

The runtime data structure for a scene.

This object can be used to query information about a scene, and as an input to various scene manipulation functions in SceneManager and EditorSceneManager.

The following script prints some information about the currently loaded scene, creates and switches to a new scene, then prints the same information for the new scene. To use the script, attach it to a GameObject and run the project.

using UnityEngine;
using UnityEngine.SceneManagement;

public class SwitchSceneAndQueryInfo : MonoBehaviour { public static void QuerySceneInfo(Scene scene) { Debug.Log("Scene name: " + scene.name); Debug.Log("Scene path: " + scene.path); Debug.Log("Scene build index: " + scene.buildIndex); Debug.Log("Scene is dirty: " + scene.isDirty); Debug.Log("Scene is loaded: " + scene.isLoaded); Debug.Log("Scene root count: " + scene.rootCount); }

public void Start() { // Query information about the currently active scene Scene currentScene = SceneManager.GetActiveScene(); QuerySceneInfo(currentScene);

// Create a new scene and switch to it var newScene = SceneManager.CreateScene("MyNewScene"); SceneManager.SetActiveScene(newScene); SceneManager.UnloadSceneAsync(currentScene);

// Query information about the new scene QuerySceneInfo(newScene); } }

Additional resources: SceneAsset.

Properties

buildIndexReturn the index of the Scene in the Build Settings.
handleA unique identifier for a loaded scene.
isDirtyReturns true if the Scene is modified.
isLoadedIsLoaded is set to true after loading has completed and objects have been enabled.
isSubSceneWhether this scene is a subscene.
nameReturns the name of the Scene that is currently active in the game or app.
pathReturns the relative path of the Scene. For example: "Assets/MyScenes/MyScene.unity".
rootCountThe number of root transforms of this Scene.

Public Methods

GetRootGameObjectsReturns all the root game objects in the Scene.
IsValidWhether this is a valid Scene. A Scene may be invalid if, for example, you tried to open a Scene that does not exist. In this case, the Scene returned from EditorSceneManager.OpenScene would return False for IsValid.

Operators

operator !=Returns true if the Scenes are different.
operator ==Returns true if the Scenes are equal.

Did you find this page useful? Please give it a rating: