// Persistir durante carregamentos de cenas public static FuncaoPeriodica CriarGlobal(Action acao, Func <bool> testeDestruicao, float temporizador) { FuncaoPeriodica funcaoPeriodica = Criar(acao, testeDestruicao, temporizador, "", false, false, false); MonoBehaviour.DontDestroyOnLoad(funcaoPeriodica.objetoJogo); return(funcaoPeriodica); }
public static FuncaoPeriodica Criar(Action acao, Func <bool> testeDestruicao, float temporizador, string nomeFuncao, bool usarTempoDeltaSemEscala, bool desencadearImediatamente, bool pareTudoComMesmoNome) { InicialSeNecessario(); if (pareTudoComMesmoNome) { PareTodasFuncoes(nomeFuncao); } GameObject gameObject = new GameObject("FunctionPeriodic Object " + nomeFuncao, typeof(MonoBehaviourHook)); FuncaoPeriodica functionPeriodic = new FuncaoPeriodica(gameObject, acao, temporizador, testeDestruicao, nomeFuncao, usarTempoDeltaSemEscala); gameObject.GetComponent <MonoBehaviourHook>().aoAtualizar = functionPeriodic.Update; listaFuncoes.Add(functionPeriodic); if (desencadearImediatamente) { acao(); } return(functionPeriodic); }
public static void RemoverTimer(FuncaoPeriodica funcTimer) { listaFuncoes.Remove(funcTimer); }