public static void Init()
        {
            if (_instance != null) return;

            _instance = Singleton.CreateSpecialInstance<GameLoopEntry>("SpacePuppy.GameLoopEntry", SingletonLifeCycleRule.LivesForever);
            //_instance = Singleton.GetInstance<GameLoopEntry>();
        }
        public static void Init()
        {
            if (_instance != null)
            {
                return;
            }

            _instance = Singleton.CreateSpecialInstance <GameLoopEntry>("SpacePuppy.GameLoopEntry", SingletonLifeCycleRule.LivesForever);
            //_instance = Singleton.GetInstance<GameLoopEntry>();
        }
 /// <summary>
 /// Retrieve a CustomTimeSupplier by name.
 /// </summary>
 /// <param name="id"></param>
 /// <param name="createIfNotExists"></param>
 /// <returns></returns>
 public static CustomTimeSupplier Custom(string id, bool createIfNotExists = false)
 {
     if (id == null)
     {
         return(null);
     }
     if (_customTimes == null)
     {
         if (createIfNotExists)
         {
             _customTimes = new Dictionary <string, CustomTimeSupplier>();
             GameLoopEntry.RegisterInternalEarlyUpdate(SPTime.Update);
             var ct = new CustomTimeSupplier(id);
             _customTimes[ct.Id] = ct;
             return(ct);
         }
         else
         {
             return(null);
         }
     }
     else
     {
         CustomTimeSupplier ct;
         if (_customTimes.TryGetValue(id, out ct))
         {
             return(ct);
         }
         else if (createIfNotExists)
         {
             ct = new CustomTimeSupplier(id);
             _customTimes[ct.Id] = ct;
             return(ct);
         }
         else
         {
             return(null);
         }
     }
 }
        public static void Init()
        {
            if (_instance != null) return;

            _instance = Singleton.CreateSpecialInstance<GameLoopEntry>("SpacePuppy.GameLoopEntry", true);
            //_instance = Singleton.GetInstance<GameLoopEntry>();
        }