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); }