class in UnityEngine.SceneManagement
/
Implemented in:UnityEngine.CoreModule
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 failedFor 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 Your name Your email Suggestion* DescriptionProvides a mechanism to override specific SceneManager methods.
Derive from this base class to provide alternative implementations to the C# behavior of specific SceneManager methods.
Warning: The SceneManagerAPI class is intended for advanced usage. Only a single implementation can be active at a time (via SceneManagerAPI.overrideAPI), so its usage could conflict with any other code attempting to use the same mechanism.
The example detects when scene loading is done by index, and logs a warning to switch to loading by scene path.
using UnityEngine; using Debug = UnityEngine.Debug; using UnityEngine.SceneManagement;Static Properties Property Description overrideAPI The specific SceneManagerAPI instance to use to handle overridden SceneManager methods. Protected Methods Method Description GetNumScenesInBuildSettings Override for customizing the behavior of the SceneManager.sceneCountInBuildSettings function. GetSceneByBuildIndex Override for customizing the behavior of the SceneManager.GetSceneByBuildIndex function. LoadFirstScene Override for customizing the behavior of loading the first Scene in a stub player build. LoadSceneAsyncByNameOrIndex Override for customizing the behavior of the SceneManager.LoadScene and SceneManager.LoadSceneAsync functions. UnloadSceneAsyncByNameOrIndex Override for customizing the behavior of the SceneManager.UnloadSceneAsync function.public class SceneIndexLogger : SceneManagerAPI { [RuntimeInitializeOnLoadMethod] static void OnRuntimeMethodLoad() { SceneManagerAPI.overrideAPI = new SceneIndexLogger(); }
protected override int GetNumScenesInBuildSettings() { Debug.LogWarning("SceneManager.GetNumScenesInBuildSettings() called, please load scenes by path to avoid issues when scenes are reordered."); return base.GetNumScenesInBuildSettings(); }
protected override Scene GetSceneByBuildIndex(int buildIndex) { Debug.Log($"SceneManager.GetSceneByBuildIndex(buildIndex = {buildIndex}) called, please load scenes by path to avoid issues when scenes are reordered."); return base.GetSceneByBuildIndex(buildIndex); } }
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4