IEnumerator Expire() { if (expiryWait == null) { expiryWait = new WaitForSeconds(expiryTime); } yield return(expiryWait); if (poolable == null) { Destroy(this.gameObject); } else { poolable.Free(); } coroutine = null; }