private static void MakeSureGroupWasCreated(ref CyclicUpdateGroup group)
 {
     if (group == null)
     {
         group = new CyclicUpdateGroup();
     }
 }
 protected void Loop(ref BaseCyclicLoopRegistry singletonInstance, ref CyclicUpdateGroup group)
 {
     MakeSureGroupWasCreated(ref group);
     if (!_amISingleton)
     {
         if (singletonInstance == null)
         {
             _amISingleton     = true;
             singletonInstance = this;
         }
     }
     if (_amISingleton)
     {
         ProcessUpdateLoop(group);
     }
 }
 protected static void RemoveUpdateMethod(Action updateAction, MonoBehaviour component, ref CyclicUpdateGroup group)
 {
     MakeSureGroupWasCreated(ref group);
     group.RemoveUpdateMethod(component, updateAction);
 }
 protected static void RegisterUpdateMethod(Action updateAction, MonoBehaviour component, float timeBetweenUpdates, ref CyclicUpdateGroup group)
 {
     MakeSureGroupWasCreated(ref group);
     group.RegisterUpdateMethod(updateAction, component, timeBetweenUpdates);
 }
 private void ProcessUpdateLoop(CyclicUpdateGroup group)
 {
     group.Loop();
 }