This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
entities.scenes [2023/01/30 07:29] uninomiconadmin |
entities.scenes [2023/06/24 03:51] (current) 97.126.63.199 |
||
---|---|---|---|
Line 5: | Line 5: | ||
SerializeUtility is responsible for writing entire Worlds to disk. It is written specifically for serializing Subscene Sections to disk in the editor, and then for streaming((see SceneSectionStreamingSystem)) them in efficiently during runtime. It can support other use cases, but it is not designed to. | SerializeUtility is responsible for writing entire Worlds to disk. It is written specifically for serializing Subscene Sections to disk in the editor, and then for streaming((see SceneSectionStreamingSystem)) them in efficiently during runtime. It can support other use cases, but it is not designed to. | ||
- | SerializeUtility supports two modes for deserialization: | + | SerializeUtility supports two modes for deserialization: |
+ | * Blocking ('' | ||
+ | * Async ('' | ||
+ | |||
+ | But only a blocking mode for serialization ('' | ||
+ | |||
+ | ==== Baking ==== | ||
+ | There are two types of baking: | ||
+ | - Full Rebakes | ||
+ | - Incremental Bakes ('' | ||
+ | |||
+ | A full rebake is triggered when: | ||
+ | * A subscene is **opened**. | ||
+ | * An assembly containing Baker classes is modified. ((Important! Separate your bakers into separate classes if you want to avoid a full re-import of all baked scenes whenever you modify a gameplay assembly!)) | ||
+ | |||
+ | Incremental bakes are triggered when: | ||
+ | * Open subscenes are modified. | ||
+ | |||
+ | ==== Serialization ==== | ||
+ | Subscenes are serialized to the binary format in several spots: | ||
+ | - When closing an opened, dirty SubScene. | ||
+ | - After modifying an assembly with bakers, triggering a full rebake. | ||
+ | - When making a player build((Can be incremental)). | ||
+ | |||
+ | Serialization uses a '' | ||
+ | |||
+ | SubScene serialization can be debugged by placing breakpoints within SerializeUtility.SerializeWorld, | ||
==== SceneSectionStreamingSystem ==== | ==== SceneSectionStreamingSystem ==== | ||
==== AsyncLoadSceneOperation ==== | ==== AsyncLoadSceneOperation ==== | ||
- | This system streams | + | These systems stream |
+ | The AsyncLoadSceneOperation and associated jobs use the Async Mode of SerializeUtility (see above). | ||