using System; using UnityEditor; namespace Fluxy { [InitializeOnLoad] public class ExecutionOrderManager { static ExecutionOrderManager() { foreach (MonoScript monoScript in MonoImporter.GetAllRuntimeMonoScripts()) { if (monoScript.GetClass() != null) { foreach (var a in Attribute.GetCustomAttributes(monoScript.GetClass(), typeof(ExecutionOrder))) { var currentOrder = MonoImporter.GetExecutionOrder(monoScript); var newOrder = ((ExecutionOrder)a).order; if (currentOrder != newOrder) MonoImporter.SetExecutionOrder(monoScript, newOrder); } } } } } }