Legacy Documentation: Version 2018.1 (Go to current version)
LanguageEnglish
  • C#
  • JS

Script language

Select your preferred scripting language. All code snippets will be displayed in this language.

SceneManager.sceneLoaded

Parameters

valueUse a subscription of either a UnityAction<Scene, LoadSceneMode> or a method that takes a Scene and a LoadSceneMode.

Description

Add a delegate to this to get notifications when a Scene has loaded.

Rather than being called directly this script code shows use of a delegate. This means the sceneLoaded value is added into a list of delegates.


In the script example below a number of method calls are shown. Specifically the first labelled method OnEnable() is used to add OnSceneLoaded (), which is not a Unity provided method. The SceneManager.sceneLoaded delegate can have any method hooked into it and it is OnSceneLoaded () here. Finally, OnDisable() is used to remove OnSceneLoaded () from SceneManager.sceneLoaded.

using UnityEngine;
using UnityEngine.SceneManagement;

public class ExampleCode : MonoBehaviour { // called zero void Awake() { Debug.Log("Awake"); }

// called first void OnEnable() { Debug.Log("OnEnable called"); SceneManager.sceneLoaded += OnSceneLoaded; }

// called second void OnSceneLoaded(Scene scene, LoadSceneMode mode) { Debug.Log("OnSceneLoaded: " + scene.name); Debug.Log(mode); }

// called third void Start() { Debug.Log("Start"); }

// called when the game is terminated void OnDisable() { Debug.Log("OnDisable"); SceneManager.sceneLoaded -= OnSceneLoaded; } }

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