Unity 6.3
0 онлайн 66 гостей 3 в системе
Вход

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, равным переданному целочисленному параметру.