Specifies the script execution order for a MonoBehaviour-derived class relative to other MonoBehaviour-derived types.
The DefaultExecutionOrder
attribute offers a way to specify the execution order between different MonoBehaviour scripts from code, rather than through the Project settings window in the Unity Editor. For more information on script execution order and configuring it in the Editor, refer to Script Execution Order in the Manual.
This attribute targets classes, but it only has an effect on classes that inherit from MonoBehaviour.
The integer value supplied as a parameter is equivalent to the integer values set in the Script Execution Order section of the Project settings window. The integer value assigned to a MonoBehaviour-derived type determines the execution order priority for script components of that type relative to the other MonoBehaviour scripts. Scripts are executed in order from lowest first to highest last, for example: -200, -100, -50, 50, 100, 200.
Note: Use this attribute with caution. Execution order defined in code with DefaultExecutionOrder
does not show in the Script Execution Order section of the Editor's Project settings. If you define an execution order for a MonoBehaviour-derived type in code with DefaultExecutionOrder
but define a different value for the same type in the Editor's Project settings window, Unity uses the value defined in the Editor UI.
See Also: MonoBehaviour
using UnityEngine; // Add this script to a GameObject [DefaultExecutionOrder(50)] public class ExampleClass : MonoBehaviour { // This Start function will execute after the Start functions of any other MonoBehaviour scripts that // have an execution order < 50 and before any with an execution order > 50. If you define a different // execution order value for this ExampleClass in the Editor's Script Execution Order settings, the // value defined in Script Execution Order settings is the one applied at runtime. void Start() { Debug.Log("Execution order 50"); } }
order | Integer which defines the execution priority order for a MonoBehaviour-derived class. |
DefaultExecutionOrder | Sets the script execution order for a MonoBehaviour-derived class to the value of the supplied integer parameter. |