1.7.0 • Published 23 days ago

com.iron-mountain.scene-management v1.7.0

Weekly downloads
-
License
MIT
Repository
github
Last release
23 days ago

Scene Management

Version: 1.5.0

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 SceneList A customizable list of SceneDatas. Create > Scriptable Objects > Scene Management > SceneList SceneManager (singleton) Attach to a GameObject. Use this singleton to load scenes.

Package Mirrors:

Key Scripts & Components:

  1. 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 GetSceneByID(String id)
      • public SceneData GetRandomScene()
      • public void SortList()
      • public void RebuildDictionary()
      • public override String ToString()
  2. public class LoadSceneAfterSeconds : SceneChanger
  3. public class SceneChanger : MonoBehaviour
    • Methods:
      • public void LoadScene(SceneData sceneData)
  4. public class SceneData : ScriptableObject
    • Properties:
      • public String ID { get; }
      • public String Path { get; }
      • public String Name { get; }
      • public String SceneName { get; }
      • public ScreenOrientation ScreenOrientation { get; }
      • public List DependencyLists { get; }
      • public List DependencyScenes { get; }
      • public List Dependencies { get; }
    • Methods:
      • 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()
  5. public static class SceneDataManager
  6. public class SceneList : ScriptableObject
    • Properties:
      • public List Scenes { get; }
      • public List SceneNames { get; }
  7. public static class SceneListsManager
  8. 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()

Launch

  1. 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; }
  2. 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; }
  3. public class SceneLaunchManager : SceneChanger
    • Actions:
      • public event Action OnCurrentPluginChanged
    • Properties:
      • public ISceneLaunchPlugin CurrentPlugin { get; }
      • public Boolean Launching { get; }
    • Methods:
      • public void Launch()
  4. 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; }

Launch. U I

  1. public class SceneLaunchManagerStatusText : MonoBehaviour

U I

  1. public class BasicSceneChangeButton : SceneChangeButton
    • Properties:
      • public SceneData SceneData { get; }
  2. public class CloseApplicationButton : MonoBehaviour
  3. public abstract class SceneChangeButton : SceneChanger
  4. public class SceneFadingAnimation : MonoBehaviour
  5. public class SceneLoadingProgressText : MonoBehaviour
  6. public class SceneLoadingScreen : MonoBehaviour
1.7.0

23 days ago

1.6.9

23 days ago

1.6.8

1 month ago

1.6.7

1 month ago

1.6.4

1 month ago

1.6.3

1 month ago

1.6.2

1 month ago

1.6.6

1 month ago

1.6.5

1 month ago

1.6.0

1 month ago

1.5.0

1 month ago

1.4.6

5 months ago

1.4.5

6 months ago

1.4.4

6 months ago

1.4.3

6 months ago

1.4.2

6 months ago

1.4.1

6 months ago

1.4.0

6 months ago

1.3.2

7 months ago

1.3.1

7 months ago

1.3.0

7 months ago