IEnumerator FlyBeforeDestroy() { float waitTime = 0.2f; switch (direction) { case Direction.North: waitTime = 0.3f; break; case Direction.South: waitTime = 0.26f; break; case Direction.West: waitTime = 0.22f; break; case Direction.East: waitTime = 0.22f; break; } yield return(new WaitForSeconds(waitTime)); _worldEntity.DeregisterMe(); _worldTrigger.DeregisterMe(); Destroy(gameObject); }