public void AddTickEngine(ITickingEngine engine)
        {
            switch (engine.tickScheduler)
            {
            case GameTickScheduler.Early: OrderedInsert(_earlyTickingEngines, engine); break;

            case GameTickScheduler.Update: OrderedInsert(_tickingEngines, engine); break;

            case GameTickScheduler.Late: OrderedInsert(_lateTickingEngines, engine); break;
            }
        }
        void OrderedInsert(FasterList <ITickingEngine> list, ITickingEngine engine)
        {
            int i = 0;

            for (; i < list.count; i++)
            {
                if (list[i].Order >= engine.Order)
                {
                    break;
                }
            }

            list.Insert(i, engine);
        }