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)