/* Damage an obstacle every x seconds */ private IEnumerator DamageObstacle(float harvestTime) { bool destroyed = false; while (!destroyed) { float t = harvestTime; while (t > 0.0f) { t -= Time.deltaTime; yield return(null); } if (HarvestTarget != null && !HarvestTarget.Equals(null)) { // Damage the object destroyed = HarvestTarget.DamageObject(); if (destroyed) { GameObject.Find("Game").GetComponent <Game>().AudioManager.Play("Rubble"); } } else { // Zombie destroyed the object destroyed = true; HarvestTarget = null; } } // Finished harvest, walk to player HarvestTarget = null; GoTo(AttackTarget); GetComponentInChildren <Animator>().SetBool("IsHarvesting", false); }