using System; using UnityEngine; using System.Collections; using System.Collections.Generic; using UnityEngine.SceneManagement; namespace MoreMountains.Tools { /// /// Scene management helpers /// public class MMScene { /// /// Returns an array filled with all the currently loaded scenes /// /// public static Scene[] GetLoadedScenes() { int sceneCount = SceneManager.sceneCount; Scene[] loadedScenes = new Scene[sceneCount]; for (int i = 0; i < sceneCount; i++) { loadedScenes[i] = SceneManager.GetSceneAt(i); } return loadedScenes; } /// /// Returns a list of all the scenes present in the build /// /// public static List GetScenesInBuild() { List scenesInBuild = new List(); for (int i = 0; i < SceneManager.sceneCountInBuildSettings; i++) { string scenePath = SceneUtility.GetScenePathByBuildIndex(i); int lastSlash = scenePath.LastIndexOf("/", StringComparison.Ordinal); scenesInBuild.Add(scenePath.Substring(lastSlash + 1, scenePath.LastIndexOf(".", StringComparison.Ordinal) - lastSlash - 1)); } return scenesInBuild; } /// /// Returns true if a scene by the specified name is present in the build /// /// /// public static bool SceneInBuild(string sceneName) { return GetScenesInBuild().Contains(sceneName); } } }