-
Notifications
You must be signed in to change notification settings - Fork 13
Scene Runtime

Scene downloading is initiated from Unity's ECS systems. The downloading itself is performed via the usual UnityWebRequest
. ISceneFactory
is responsible for doing this in an async
manner.
ISceneFactory
exposes additional overloads to create scenes from files for testing purposes.
The scene itself is represented by ISceneFacade
. It has the following capabilities:
StartUpdateLoop
-
SetTargetFPS
: the update frequency of JS Scene is controlled from C# DisposeAsync
When the scene is created its life cycle is controlled by ECS
. ISceneFacade
is added as a component to the entity representing the scene.
The process of scene downloading is described in detail in a separate section.
When the scene code along the modules is loaded SceneRuntimeImpl
is responsible for creating a separate instance of the execution engine via ClearSript.
⚠️ There is no such concept as engine pooling: every scene creates a unique instance, and when it goes out of scope the instance is disposed of. It creates a considerable GC pressure butScriptEngine
is not reusable.ClearScript
takes care of disposing of unmanaged resources.
Proceed to Systems to familiarize yourself with the ECS systems that manage the scenes' life cycle.
TODO insert a principle scheme