Hi everybody i would like to undestand more the differences between the ECS subscene loading and the new SceneManager.LoadSceneAsync, what is the difference? Currently i’m using the addressables to load a scene async and from what i understood i can only load one scene at time, so the benefit of using ECS scene loading is loading more tha one scene at time? Can you help me undesrtand more the PRO and CONS if these system?
These aren’t directly comparable, as they do different things.
SceneManager etc. load normal Unity scenes which includes GameObjects as the basic unit of scene content.
Entities subscene streaming deserializes subscene content into component data on entities to a temporary Entities World before being moved to the destination World. Entities are not the same thing as GameObjects, they use a different model for data storage and game logic. Some UnityEngine.Component types are supported as companion components which are placed on automatically managed GameObjects associated with the entities, but this set is very restricted. References to UnityEngine.Object types are supported, but those as well as companion components are stored in content archives and are loaded through the engine’s archive API.
Subscene streaming makes use of jobs where possible, but it still requires sequential integration of individual subscenes to complete the streaming process.
Entities in general can have its uses for better optimized memory layout for the things in your game, which also helps make loading more efficient, but making proper use of it requires specifically designing the scene content being placed in the subscene to be written for Entities. At minimum, you need to write component types (IComponentData, IBufferElementData) for the data you put on entities, then ideally you add authoring components / bakers to convert from an authoring representation in the subscene to entities used in runtime, and runtime systems to process game logic.
In context of loading world’s parts this can work with entities while if you are still working with gameObjects you can achieved something similar with the old SceneLoadAsync add if you don’t need entities. BTW I know the subscenes are used for converting subscenes’ gameobjects to entities. Am I right?