scenemanager
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| scenemanager [2021/02/07 23:39] – uninomiconadmin | scenemanager [2025/01/15 04:35] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | Notes: | + | ====== SceneManager ====== |
| - | `SceneManager.sceneLoaded` is called *after* the loaded Scene Awakes. | ||
| + | ==== When does scene loading happen? ==== | ||
| + | Scene loading and unloading happens at the start of the Update loop, within the '' | ||
| - | # Header | + | Player Loop Phases: |
| - | Notes [link](google.com) | + | * __Initialization__ |
| + | * Game Loop | ||
| + | * Early Update | ||
| + | * __UpdatePreloading__ (Scene Loading happens here) | ||
| + | * FixedUpdate | ||
| + | * Update | ||
| + | |||
| + | ===== The Scene Loading Queue ===== | ||
| + | |||
| + | The scene loading queue is a pipeline, and only one AsyncOperation can progress at a time. Calling '' | ||
| + | |||
| + | During the '' | ||
| + | |||
| + | The scene loading pipeline only seems to execute a single operation, every other frame.< | ||
| + | |||
| + | * Frame N+0: Scene1 | ||
| + | * Frame N+1: --- | ||
| + | * Frame N+2: Scene 2 | ||
| + | * Frame N+3: --- | ||
| + | * Frame N+4: Scene 3 | ||
| + | |||
| + | |||
| + | ==== Initialization ==== | ||
| + | |||
| + | The Engine fully " | ||
| + | |||
| + | **All** AsyncOperations that are queued during initialization are fully loaded during initialization. For example, if '' | ||
| + | |||
| + | Scene unloads are probably flushed if they are in the pipeline, too.< | ||
| + | |||
| + | ===== Build Pipeline ===== | ||
| + | |||
| + | Scenes are built during standalone build in the following way: | ||
| + | |||
| + | - The active scenes are closed. | ||
| + | - Each Scene in the BuildSettings is opened. At this point prefabs are still prefab instances. | ||
| + | - '' | ||
| + | - Prefabs in the scene are flattened (turned into normal game objects). | ||
| + | - [[IProcessScene]] and PostProcessScene callbacks are called. | ||
| + | - The final scene file is saved into the standalone build file. | ||
| + | - Repeat for next scene. | ||
| + | |||
| + | ===== Sample Scene Load (Editor) ===== | ||
| + | |||
| + | Here is an example of a scene loading additively **in the middle** of a game, **in the editor**. Note that: | ||
| + | |||
| + | * Prefabs.MergePrefabs (turning prefabs into gameobjects) happens before any other callback. (editor only) | ||
| + | * Lightmapping is applied / loaded after Awake/ | ||
| + | * SceneManager.sceneLoaded happens after PostProcessScene. | ||
| + | |||
| + | {{ : | ||
| + | |||
| + | ===== 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: ===== | ||
| + | === SceneManager.sceneLoaded === | ||
| + | * Called **after** the loaded Scene Awakes. | ||
| + | |||
| + | |||
| + | |||
scenemanager.1612741178.txt.gz · Last modified: 2025/01/15 04:35 (external edit) · Currently locked by: 146.174.166.6