scenemanager
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| scenemanager [2021/02/21 16:57] – 73.95.178.156 | scenemanager [2025/01/15 04:35] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 2: | Line 2: | ||
| - | **When does scene loading happen?** Scene loading and unloading happens at the start of the Update loop, within the '' | + | ==== When does scene loading happen? |
| + | Scene loading and unloading happens at the start of the Update loop, within the '' | ||
| Player Loop Phases: | Player Loop Phases: | ||
| - | * Initialization | + | * __Initialization__ |
| * Game Loop | * Game Loop | ||
| * Early Update | * Early Update | ||
| - | * `UpdatePreloading` | + | * __UpdatePreloading__ |
| + | * FixedUpdate | ||
| * Update | * Update | ||
| Line 18: | Line 20: | ||
| During the '' | During the '' | ||
| - | The scene loading pipeline only seems to execute a single operation, every other frame. | + | The scene loading pipeline only seems to execute a single operation, every other frame.< |
| * Frame N+0: Scene1 | * Frame N+0: Scene1 | ||
| - | * Frame N+1: ---- | + | * Frame N+1: --- |
| * Frame N+2: Scene 2 | * Frame N+2: Scene 2 | ||
| - | * Frame N+3: ---- | + | * Frame N+3: --- |
| * Frame N+4: Scene 3 | * Frame N+4: Scene 3 | ||
| Line 29: | Line 31: | ||
| ==== Initialization ==== | ==== Initialization ==== | ||
| - | The Engine | + | The Engine |
| - | The Unity scene flushing pipeline works differently in the initialization phase of the player. Scene loads thats are queued during initialization are blocked and fully loaded | + | **All** AsyncOperations that are queued during initialization are fully loaded |
| - | + | Scene unloads are probably | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | (The scene load pipeline is fully flushed) I don't yet know how it handles unloads | + | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | During a scene load (ie. Awake) the loading scene has '' | + | |
| - | During a scene unload (ie. Destroy) the unloading scene has '' | + | |
| ===== Build Pipeline ===== | ===== Build Pipeline ===== | ||
| - | Scenes are built during standalone in the following way: ' | + | Scenes are built during standalone |
| - The active scenes are closed. | - The active scenes are closed. | ||
| - Each Scene in the BuildSettings is opened. At this point prefabs are still prefab instances. | - Each Scene in the BuildSettings is opened. At this point prefabs are still prefab instances. | ||
| - | - EditorSceneManager.sceneOpened callback is called. | + | - '' |
| - Prefabs in the scene are flattened (turned into normal game objects). | - Prefabs in the scene are flattened (turned into normal game objects). | ||
| - [[IProcessScene]] and PostProcessScene callbacks are called. | - [[IProcessScene]] and PostProcessScene callbacks are called. | ||
| - The final scene file is saved into the standalone build file. | - The final scene file is saved into the standalone build file. | ||
| - | - Repeat for next scene | + | - Repeat for next scene. |
| ===== Sample Scene Load (Editor) ===== | ===== Sample Scene Load (Editor) ===== | ||
| Line 62: | Line 55: | ||
| * Prefabs.MergePrefabs (turning prefabs into gameobjects) happens before any other callback. (editor only) | * Prefabs.MergePrefabs (turning prefabs into gameobjects) happens before any other callback. (editor only) | ||
| * Lightmapping is applied / loaded after Awake/ | * Lightmapping is applied / loaded after Awake/ | ||
| - | * SceneManager.sceneLoaded happens after PostProcessScene; | + | * SceneManager.sceneLoaded happens after PostProcessScene. |
| {{ : | {{ : | ||
| - | {{tag> | + | ===== Scattered Notes ===== |
| + | * During a scene load (ie. Awake) the loading scene has '' | ||
| + | * During a scene unload (ie. Destroy) the unloading scene has '' | ||
| + | * '' | ||
| + | * When using '' | ||
| + | |||
| + | |||
| + | ---- | ||
| ===== API Notes: ===== | ===== API Notes: ===== | ||
| === SceneManager.sceneLoaded === | === SceneManager.sceneLoaded === | ||
| - | * Called *after* the loaded Scene Awakes. | + | * Called |
scenemanager.1613926658.txt.gz · Last modified: 2025/01/15 04:35 (external edit)