Version: 2021.3
LanguageEnglish
  • C#

DefaultExecutionOrder

class in UnityEngine

/

Implemented in:UnityEngine.CoreModule

Suggest a change

Success!

Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable.

Close

Submission failed

For some reason your suggested change could not be submitted. Please <a>try again</a> in a few minutes. And thank you for taking the time to help us improve the quality of Unity Documentation.

Close

Cancel

Description

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");
    }
}

Properties

orderInteger which defines the execution priority order for a MonoBehaviour-derived class.

Constructors

DefaultExecutionOrderSets the script execution order for a MonoBehaviour-derived class to the value of the supplied integer parameter.