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 streaming1) them in efficiently during runtime. It can support other use cases, but it is not designed to.
SerializeUtility supports two modes for deserialization:
DeserializeWorld
)BeginDeserializeWorld
/EndDeserializeWorld
).
But only a blocking mode for serialization (SerializeWorld
).2)
These systems stream Sections of entities scenes3) into a World. It's intended for use at runtime, but will also be used in the editor when Entity Subscenes are “Closed for Edit” in the Hierarchy.
The AsyncLoadSceneOperation and associated jobs use the Async Mode of SerializeUtility (see above).