com.iron-mountain.scene-management
v1.7.1
Published
A system for loading scenes, tracking scene dependencies, and storing scene metadata.
Downloads
42
Readme
Scene Management
Version: 1.7.1
Description:
A system for loading scenes, tracking scene dependencies, and storing scene metadata.
Use Cases:
- Manage scene metadata, such as id, initial screen orientation, and initial Time.scale.
- Load scenes with fade effects (fade old scene out, fade loading scene in, fade loading scene out, fade new scene in)
- Build loading screens with progress bars and percentage counters.
- Manage scene dependencies and automatically load them when they're needed.
- Manage lists of scenes, and apply a list to the build settings.
Directions for Use:
- SceneData
- Scriptable Object that stores metadata about a scene.
- Must be named exactly the same as the scene it represents.
- Create > Scriptable Objects > Scene Management > SceneData
- SceneDatabase
- Stores all SceneData instances, and is used to rapidly switch between scenes.
- Create > Scriptable Objects > Scene Management > Database
- SceneManager (singleton)
- Attach to a GameObject.
- Use this singleton to load scenes.
- SceneList
- A customizable list of SceneDatas.
- Create > Scriptable Objects > Scene Management > SceneList
Package Mirrors:
Key Scripts & Components:
- public class Database : ScriptableObject
- Properties:
- public List Scenes { get; }
- public SceneData LoginScene { get; }
- public SceneData FirstGameScene { get; }
- Methods:
- public SceneData GetSceneByName(String sceneName)
- public SceneData GetSceneByPath(String scenePath)
- public SceneData GetSceneByID(String id)
- public SceneData GetRandomScene()
- public void SortList()
- public void RebuildDictionary()
- public override String ToString()
- Properties:
- public class LoadSceneAfterSeconds : SceneChanger
- public class SceneChanger : MonoBehaviour
- Methods:
- public void LoadScene(SceneData sceneData)
- Methods:
- public class SceneData : ScriptableObject
- Properties:
- public String ID { get; }
- public String Path { get; }
- public String Directory { get; }
- public String Name { get; }
- public String SceneName { get; }
- public Int32 BuildIndex { get; }
- public Boolean BuildEnabled { get; }
- public ScreenOrientation ScreenOrientation { get; }
- public List DependencyLists { get; }
- public List DependencyScenes { get; }
- public List Dependencies { get; }
- Methods:
- public void CacheBuildDetails(Int32 index, Boolean enabled)
- public Boolean DependsOn(Scene scene)
- public void Load(float delay)
- public void Load()
- public virtual void ActivateSettings()
- public virtual void OnThisSceneLoaded()
- public virtual void OnThisSceneUnloaded()
- public virtual void Reset()
- public virtual void OnValidate()
- Properties:
- public static class SceneDataManager
- public class SceneList : ScriptableObject
- Properties:
- public List Scenes { get; }
- public List SceneNames { get; }
- Properties:
- public static class SceneListSorts
- public static class SceneListsManager
- public class SceneManager : MonoBehaviour
- Properties:
- public Database SceneDatabase { get; }
- public float Progress { get; }
- public float GameSceneFadeOutSeconds { get; }
- public float LoadingSceneFadeInSeconds { get; }
- public float LoadingSceneFadeOutSeconds { get; }
- public float GameSceneFadeInSeconds { get; }
- public State CurrentState { get; }
- Methods:
- public SceneData GetSceneByName(String sceneName)
- public SceneData GetSceneByID(String id)
- public SceneData GetRandomScene()
- public void LoadLoginScene()
- public void LoadSceneByName(String sceneName, float delay)
- public void LoadSceneByID(String id, float delay)
- public void LoadScene(SceneData scene, float delay)
- public SceneData GetActiveSceneData()
- Properties:
Launch
- public interface ISceneLaunchPlugin
- Actions:
- public event Action OnStatusMessageChanged
- Properties:
- public Int32 Priority { get; }
- public Boolean IsReady { get; }
- public String StatusMessage { get; }
- public SceneData SceneToLaunch { get; }
- Actions:
- public class RuntimePlatformSceneLaunchPlugin : MonoBehaviour
- Actions:
- public event Action OnStatusMessageChanged
- Properties:
- public Int32 Priority { get; }
- public Boolean IsReady { get; }
- public String StatusMessage { get; }
- public SceneData SceneToLaunch { get; }
- Actions:
- public class SceneLaunchManager : SceneChanger
- Actions:
- public event Action OnCurrentPluginChanged
- Properties:
- public ISceneLaunchPlugin CurrentPlugin { get; }
- public Boolean Launching { get; }
- Methods:
- public void Launch()
- Actions:
- public class SceneLaunchPlugin : MonoBehaviour
- Actions:
- public event Action OnStatusMessageChanged
- Properties:
- public Int32 Priority { get; }
- public Boolean IsReady { get; }
- public String StatusMessage { get; }
- public SceneData SceneToLaunch { get; }
- Actions:
Launch. U I
- public class SceneLaunchManagerStatusText : MonoBehaviour
U I
- public class BasicSceneChangeButton : SceneChangeButton
- Actions:
- public event Action OnSceneDataChanged
- Properties:
- public SceneData SceneData { get; set; }
- Actions:
- public class BasicSceneChangeButtonList : MonoBehaviour
- public class BasicSceneChangeButtonSceneNameLabel : MonoBehaviour
- public class CloseApplicationButton : MonoBehaviour
- public abstract class SceneChangeButton : SceneChanger
- public class SceneFadingAnimation : MonoBehaviour
- public class SceneLoadingProgressText : MonoBehaviour
- public class SceneLoadingScreen : MonoBehaviour