/// <summary> /// Unregister a timer so it no longer receives ticks. /// </summary> /// <param name="timer"></param> public static void UnregisterTimer(IQuestTimer timer) { if (!Application.isPlaying) { return; } instance.Unregister(timer); }
/// <summary> /// Unregisters a timer from this instance of QuestTimerManager. /// This method is usually called implicitly by the static method /// QuestTimerManager.UnregisterTimer. /// </summary> public void Unregister(IQuestTimer timer) { if (timer == null || !m_timers.Contains(timer)) { return; } m_timers.Remove(timer); if (m_timers.Count <= 0) { // No more timers, so stop coroutine: StopAllCoroutines(); } }
/// <summary> /// Registers a timer with this instance of QuestTimerManager. /// This method is usually called implicitly by the static method /// QuestTimerManager.RegisterTimer. /// </summary> public void Register(IQuestTimer timer) { if (timer == null || m_timers.Contains(timer)) { return; } m_timers.Add(timer); if (m_timers.Count == 1) { // First timer, so start coroutine: StartCoroutine(TimerCoroutine()); } }