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 native Scene struct.

  • Event-DrivenSceneLoaded and SceneUnloaded events notify listeners of scene transitions.

Quick Start

API Reference

Class
Description

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

Class
Description

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?