private IEnumerator DroidDrop() { droppingDroids = true; canShoot = false; animator.StartDropAnimation(); weakPoint.SetActive(true); yield return(new WaitForSeconds(4f)); animator.CreateDroids(); StartCoroutine(SetCanShootAfter(true, 1.2f)); for (int i = 0; i < numberOfDroidsToSpawn; i++) { SwarmController droid = PoolManager.instance.ReuseObject(droidPrefab, weakPoint.transform.position, Quaternion.identity).GetComponent <SwarmController> (); droid.Activate(); droid.startingHealth = 2.5f; droid.SetDefaults(); yield return(new WaitForSeconds(0.15f)); } yield return(new WaitForSeconds(1.2f - (0.15f * numberOfDroidsToSpawn))); weakPoint.SetActive(false); nextDropTime = Time.time + msBeforeDroidDrop / 1000f; droppingDroids = false; }