Documenting the dark corners of the Unity Engine.

User Tools

Site Tools


This is an old revision of the document!


Event Functions


  • Reset is only called in editor mode.
  • Very useful to setup values for your attributes, i.e. find a child component.
  • Use it with the RequireComponent attribute to always get a reference for your component.


  • Awake will still be called for disabled components on enabled objects.


  • Start is guaranteed to be called before the first FixedUpdate() or Update() for this component.
  • If no FixedUpdate() or Update() events are defined, Start will be run at the end of the frame the object awoke on.


(Tested with 2017.4 and an opened Scene running in play mode in editor by stopping the play mode, may differ for other versions/situations)

  • Both events are not affected by script execution order.
  • Scene is traversed from each root separately in unspecified (non-hierarchy) order, e.g. [root 1 and all its children], [root 2 and all its children]. “root” being a top-level GameObject in scene.
  • All OnDisable calls are performed before all OnDestroy calls within a single root.
  • Only root GameObject activeSelf is changed, for children it will not be changed.
  • Components are traversed in the order they appear in Inspector, top to bottom.
  • OnDisable:
    • Call order: same as hierarchy, child before parent. :!:
    • activeInHierarchy propagation can be unfinished for the following siblings and their children.
  • OnDestroy:
    • Call order: same as hierarchy, parent before child. :!:


  • Does not get called if the game object is rendered by a ugui CanvasRenderer


  • Does not get called if the game object is rendered by a ugui CanvasRenderer
monobehaviour.1640385516.txt.gz · Last modified: 2021/12/24 22:38 by archo