Order of execution of events in the system - Katsuya100/SceneLayer-Trial GitHub Wiki

Order of execution of sequence events

For more information about sequence events, click here.

Order of execution of transitions and updates

The order of execution of events in a single transition is specified below.
Horizontal:Frame
Vertical:Processing order in the same frame (from top to bottom)

gantt
  dateFormat HH:mm
  axisFormat %Mf
  Transition:active, 00:00, 2m
  Entry:active, 00:01, 1m
  PostTransition:active, 00:01, 3m
  Update:active, 00:01, 8m
  PreTransition:active, 00:06, 3m
  Exit:active, 00:08, 1m
  Transition:done, 00:08, 2m

The following is a breakdown at the function level.

gantt
  dateFormat HH:mm
  axisFormat %Mf
  section Transition
  TransitionBehaviour.OnTransit:active, 00:00, 2m
  LayerBehaviour.OnChildTransit:active, 00:00, 2m
  LayerBehaviour.OnTransitTo:active, 00:00, 2m
  LayerBehaviour.OnTransitFrom:active, 00:00, 2m
  LayerBehaviour.OnParentTransitTo:active, 00:00, 2m
  LayerBehaviour.OnParentTransitFrom:active, 00:00, 2m

  section Entry
  LayerBehaviour.OnEntry:active, 00:01, 1m

  section PostTransition
  TransitionBehaviour.OnPostTransit:active, 00:01, 3m
  LayerBehaviour.OnPostChildTransit:active, 00:01, 3m
  LayerBehaviour.OnPostTransitTo:active, 00:01, 3m
  LayerBehaviour.OnPostTransitFrom:active, 00:01, 3m
  LayerBehaviour.OnPostParentTransitTo:active, 00:01, 3m
  LayerBehaviour.OnPostParentTransitFrom:active, 00:01, 3m

  section Update
  LayerBehaviour.OnUpdate:active, 00:01, 8m

  section PreTransition
  TransitionBehaviour.OnPreTransit:active, 00:06, 3m
  LayerBehaviour.OnPreChildTransit:active, 00:06, 3m
  LayerBehaviour.OnPreTransitTo:active, 00:06, 3m
  LayerBehaviour.OnPreTransitFrom:active, 00:06, 3m
  LayerBehaviour.OnPreParentTransitTo:active, 00:06, 3m
  LayerBehaviour.OnPreParentTransitFrom:active, 00:06, 3m
  
  section Exit
  LayerBehaviour.OnExit:active, 00:08, 1m

  section Transition 
  TransitionBehaviour.OnTransit:done, 00:08, 2m
  LayerBehaviour.OnChildTransit:done, 00:08, 2m
  LayerBehaviour.OnTransitTo:done, 00:08, 2m
  LayerBehaviour.OnTransitFrom:done, 00:08, 2m
  LayerBehaviour.OnParentTransitTo:done, 00:08, 2m
  LayerBehaviour.OnParentTransitFrom:done, 00:08, 2m

Execution order among layers in the hierarchy

EntryandUpdateare executed in order from the parent. In contrast,Exit` is executed in the order of its children.

Horizontal:Frame
Vertical:Processing order in the same frame (from top to bottom)

gantt
  dateFormat HH:mm
  axisFormat %Mf
  Parent Layer.Entry:active, pentry, 00:00, 1m
  Child Layer.Entry:active, centry, 00:00, 1m
  Parent Layer.Update:active, pupdate, 00:00, 8m
  Child Layer.Update:active, cupdate, 00:00, 8m
  Child Layer.Exit:active, cexit, 00:07, 1m
  Parent Layer.Exit:active, pexit, 00:07, 1m

Order of execution of Loader

The order of execution of events in a single Loader process is specified below.
An example is shown in the graph below.

  • There is a parent and child Layer.
  • Each has two Loaders.
  • Suppose all these Load processes run simultaneously.

Horizontal:Frame
Vertical:Processing order in the same frame (from top to bottom)

gantt
  dateFormat HH:mm
  axisFormat %Mf
  section Parent
  Loader1.Load:active, pl1, 00:00, 2m
  Loader1.Instantiate:active, pi1, after pl1, 1m
  Loader2.Load:active, pl2, 00:00, 3m
  Loader2.Instantiate:active, pi2, after pl2, 4m

  section Child
  Loader1.Load:active, cl1, after pl1 pl2, 3m
  Loader1.Instantiate:active, ci1, after pi1 pi2 cl1, 1m
  Loader2.Load:active, cl2, after pl1 pl2, 2m
  Loader2.Instantiate:active, ci2, after pi1 pi2 cl2, 1m

Instantiate of each Loader runs after Load.

The child Load depends on the parent's Load, so it is executed after the parent's Load is finished.
The child Instantiate depends on the parent's Instantiate, so it will be executed after the parent's Instantiate is finished.

Both child and parent Load Instantiate processes are processed in parallel, but they can also have dependencies on each other.
See Load order control for more information on how to create dependencies.