protected virtual void Start()
        {
            if (this.RunStart)
            {
                if (Bootloader.AreManagersReady == false)
                {
                    Bootloader.OnManagersReady += OnManagersReady;
                }
                else
                {
                    this.startReceipt = StartManager.Instance.QueueWork(this, this.name, this);
                }
            }

            void OnManagersReady()
            {
                this.startReceipt = StartManager.Instance.QueueWork(this, this.name, this);
            }
        }
        protected virtual void Awake()
        {
            if (this.RunAwake)
            {
                if (Bootloader.AreManagersReady == false)
                {
                    Bootloader.OnManagersReady += OnManagersReady;
                }
                else
                {
                    this.awakeReceipt = AwakeManager.Instance.QueueWork(this, this.Name, this);
                }
            }

            void OnManagersReady()
            {
                this.awakeReceipt = AwakeManager.Instance.QueueWork(this, this.Name, this);
            }
        }
 public void OnStart()
 {
     this.LoadBalancedStart();
     this.startReceipt = default;
 }
 public void OnAwake()
 {
     this.LoadBalancedAwake();
     this.awakeReceipt = default;
 }