public static FunctionPeriodic Create_Global(Action action, Func <bool> testDestroy, float timer)
        {
            FunctionPeriodic functionPeriodic = Create(action, testDestroy, timer, "", false, false, false);

            MonoBehaviour.DontDestroyOnLoad(functionPeriodic.gameObject);
            return(functionPeriodic);
        }
        public static FunctionPeriodic Create(Action action, Func <bool> testDestroy, float timer, string functionName, bool useUnscaleDeltaTime, bool triggerImmediately, bool stopAllWithSameName)
        {
            InitIfNeeded();

            if (stopAllWithSameName)
            {
                StopAllFunc(functionName);
            }

            GameObject       gameObject       = new GameObject("FunctionPeriodic Object " + functionName, typeof(MonoBehaviourHook));
            FunctionPeriodic functionPeriodic = new FunctionPeriodic(gameObject, action, timer, testDestroy, functionName, useUnscaledDeltaTime);

            gameObject.GetComponent <MonoBehaviourHook>().OnUpdate = functionPeriodic.Update;

            funcList.Add(functionPeriodic);

            if (triggerImmediately)
            {
                action();
            }

            return(functionPeriodic);
        }
 public static void RemoveTimer(FunctionPeriodic funcTimer)
 {
     InitIfNeeded();
     funcList.Remove(funcTimer);
 }