//Note, this isn't a coroutine, so if you want to delay until the timer is finished, just do a WaitForSeconds after spawning the timer public void SpawnTimer(float fDelay, string sLabel) { GameObject goTimer = Instantiate(pfTimer, Match.Get().transform); //TIMER SPAWN POSITION ViewTimer viewTimer = goTimer.GetComponent <ViewTimer>(); if (viewTimer == null) { Debug.LogError("ERROR - pfTimer doesn't have a viewTimer component"); } viewTimer.InitTimer(fDelay, sLabel); //Check if we should delete the previous timer if (viewTimerCur != null) { //Debug.Log("Deleting previous timer for " + viewTimerCur.sLabel); Destroy(viewTimerCur.gameObject); } viewTimerCur = viewTimer; }