Updated Event Execution Order

From Unify Community Wiki
(Difference between revisions)
Jump to: navigation, search
m (Fixed some typos, added more info about coroutines)

Revision as of 01:59, 9 June 2009


Game loop

After an instantiation

For objects that were instantiated last game loop iteration:

  • Start

Physics loop

Physics is run in a loop until timestep*count > Time.deltaTime:

  • FixedUpdate
  • Physics simulation
  • OnCollisionEnter/OnCollisionStay/OnCollisionExit
  • OnTriggerEnter/OnTriggerStay/OnTriggerExit

Update events

The rest of the events are run once per game loop iteration:

  • WaitForFixedUpdate (Coroutines which yielded WaitForFixedUpdate will resume execution as soon as the physics loop finishes)

  • Update
  • WaitForSeconds/yield/yield return 0 (Coroutines which yielded one of these will resume execution here, with WaitForSeconds resuming after the defined time)
  • LateUpdate


  • OnPreCull
  • OnBecameVisible/OnBecameInvisible
  • OnWillRenderObject
  • OnPreRender
  • OnRenderObject
  • OnPostRender
  • OnRenderImage (pro only)

  • OnGUI
  • OnDrawGizmos (Only when scene is drawn, even if object is inactive)

Before the frame ends

  • WaitForEndOfFrame (Coroutines which yielded WaitForEndOfFrame will resume execution before the game loop finishes)

First scene load

Repeated once per object:

  • Awake
  • OnEnable (if the object is active)

At the beginning of the next frame, per object:

  • Start

After calling Application.LoadLevel

Before the level loads

Repeated once per active object, after the end of the current frame:

  • OnDisable

Level loads

After level loads

Repeated once per scene object:

  • Awake
  • OnEnable (if the object is active)

Repeated once per active DontDestroyOnLoad object from last level:

  • OnEnable

Repeated once per active object:

  • OnLevelWasLoaded

When quitting

For all active objects:

  • OnApplicationQuit
  • OnDisable

Immediate events

These are all called immediately when certain functions are called (e.g. Instantiate, setting enabled):

  • Awake - called during MonoBehaviour instantiation
  • OnEnable/OnDisable - OnEnable called during MonoBehaviour instantiation
  • Reset - called when the script is reset (Editor Only)
Personal tools