IEnumerator DropLimbDelayed(Limb limb, float delay) { yield return(new WaitForSeconds(delay)); PlayLimbFX(); Limb copy = Instantiate(limb, limb.transform.parent); copy.gameObject.name = "Detached_Limb"; copy.DropSelf(transform.localScale.x > 0); copy.transform.parent = null; limb.gameObject.SetActive(false); }