SceneManagement
A dependency-aware scene loading system that wraps Unity's SceneManager with graph-based scene dependencies.
Architecture
┌─────────────────────────────────────────────────────────────┐
│ SceneManager │
│ (Static API for loading, unloading, and querying scenes) │
└──────────────────────────┬──────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ SceneGraph │
│ (ScriptableObject storing all SceneNodes) │
└──────────────────────────┬──────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ SceneNode │
│ (Holds a Scene reference and its dependencies) │
└──────────────────────────┬──────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ Scene │
│ (Serializable wrapper around UnityEngine.SceneAsset) │
└─────────────────────────────────────────────────────────────┘Key Features
Dependency Chain Resolution — Automatically loads prerequisite scenes before the target scene.
Async Loading — Supports
Task-based asynchronous scene loading and unloading.Implicit Conversions — Seamlessly convert between
Scene,string, and Unity's nativeScenestruct.Event-Driven —
SceneLoadedandSceneUnloadedevents notify listeners of scene transitions.
Quick Start
API Reference
Serializable scene reference with path, name, and GUID
Static API for scene loading, unloading, and queries
ScriptableObject storing scene nodes and dependencies
Represents a scene and its dependencies in the graph
Enum for single vs additive scene loading
Editor
Editor tools overview
Editor scene operations (open, close, save)
Custom inspector for SceneGraph
Property drawer for Scene
Property drawer for SceneNode
Scene selection popup
Build processor for SceneGraph
Editor scene opening mode enum
See Also
ActionSystem — Async framework used for scene loading operations
Last updated
Was this helpful?