Uninomicon

Documenting the dark corners of the Unity Engine.

User Tools

Site Tools


entities.scenes

This is an old revision of the document!


Entities.Scenes

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 streaming1) them in efficiently during runtime. It can support other use cases, but it is not designed to.

SerializeUtility supports two modes for deserialization:

  • Blocking (DeserializeWorld)
  • Async (BeginDeserializeWorld/EndDeserializeWorld).

But only a blocking mode for serialization (SerializeWorld). This is reasonable because it's edit-time functionality, and runs via a background ScriptedImporter2)

Serialization

SceneSectionStreamingSystem

AsyncLoadSceneOperation

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).

1)
see SceneSectionStreamingSystem
2)
ScriptedImporters run on separate Worker processes due to 2020.1's “Parallel Import” feature.
3)
subscenes
entities.scenes.1687577950.txt.gz · Last modified: 2023/06/24 03:39 by 97.126.63.199