void Update() { if (Active) { ElapsedTime += Time.deltaTime; if (ElapsedTime >= TimerLength) { CurrentLoop++; if (OnComplete != null) { Debug.Log("Timer complete calling " + OnComplete.GetType().Name); OnComplete(this); } if (CurrentLoop >= Loops) { Active = false; } else { ElapsedTime -= ElapsedTime; } } } }