DefaultExecutionOrder
класс в UnityEngine
Выполнено в:UnityEngine.CoreModule
Описание
Задаёт порядок выполнения скрипта для класса, производного от MonoBehaviour, относительно других типов, производных от MonoBehaviour.
Атрибут DefaultExecutionOrder позволяет задавать порядок выполнения разных скриптов MonoBehaviour непосредственно в коде, а не в окне настроек проекта редактора Unity. Дополнительные сведения о порядке выполнения скриптов и его настройке в редакторе см. в разделе Порядок выполнения скриптов Руководства.
Этот атрибут применяется к классам, но действует только на классы, наследующие MonoBehaviour. Порядок выполнения компонентов скриптов по умолчанию применяется только к функциям событий, которые Unity вызывает в определённой последовательности на всех активных GameObject в рамках их жизненного цикла, например MonoBehaviour.Awake и MonoBehaviour.OnEnable. Он не гарантирует относительный порядок выполнения обратных вызовов для событий, которые могут произойти в любой момент работы приложения и обычно относятся к меньшему подмножеству GameObject, например MonoBehaviour.OnTriggerEnter.
Целое число, переданное в качестве параметра, соответствует значениям в разделе Порядок выполнения скриптов окна настроек проекта. Целое число, назначенное типу, производному от MonoBehaviour, определяет приоритет выполнения компонентов скриптов этого типа относительно других скриптов MonoBehaviour. Скрипты выполняются по возрастанию значений — от наименьшего к наибольшему, например: -200, -100, -50, 50, 100, 200.
Если у нескольких скриптов задан одинаковый порядок выполнения либо для них используется порядок по умолчанию, последовательность их выполнения не определена. Во время тестирования она может казаться постоянной, но полагаться на это нельзя: порядок не гарантируется для разных сборок, компьютеров и версий Unity. Учтите, что ассеты, импортированные из Asset Store или других внешних источников, могут содержать скрипты с тем же заданным порядком выполнения, что и ваши скрипты. Если для определённых скриптов необходим детерминированный порядок, после импорта назначьте им разные значения порядка выполнения.
Примечание: используйте этот атрибут с осторожностью. Порядок выполнения, заданный в коде с помощью DefaultExecutionOrder, не отображается в разделе Порядок выполнения скриптов окна настроек проекта редактора. Если для типа, производного от MonoBehaviour, в коде с помощью DefaultExecutionOrder задан один порядок, а в окне настроек проекта редактора — другое значение, Unity использует значение из UI редактора.
См. также: 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 | Целое число, задающее порядок приоритета выполнения для класса, производного от MonoBehaviour. |
Конструкторы
| Конструктор | Описание |
|---|---|
| DefaultExecutionOrder | Задаёт порядок выполнения скрипта для класса, производного от MonoBehaviour, равным переданному целочисленному параметру. |