This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
entities.scenes [2023/01/30 07:24] uninomiconadmin created |
entities.scenes [2023/06/24 03:51] (current) 97.126.63.199 |
||
---|---|---|---|
Line 3: | Line 3: | ||
==== SerializeUtility ==== | ==== SerializeUtility ==== | ||
- | 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 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)) |
+ | 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 ==== | ||
+ | ==== AsyncLoadSceneOperation ==== | ||
+ | |||
+ | These systems stream Sections of entities scenes((subscenes)) into a World. It's intended for use at runtime, but will also be used in the editor when Entity Subscenes are " | ||
+ | |||
+ | The AsyncLoadSceneOperation and associated jobs use the Async Mode of SerializeUtility (see above). | ||