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

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)
This makes sense, historically. Scene serialization only happens during builds and other rare Editor actions. It doesn't need to run alongside gameplay and freezing the editor briefly isn't much concern.
3)
subscenes
entities.scenes.1675064076.txt.gz · Last modified: 2023/01/30 07:34 by uninomiconadmin