public void SpawnCrate(ChallengePickup.ChallengeType challengeType) { Crate crate = _cratePool.GetPooledObject <Crate>(); switch (challengeType) { case ChallengePickup.ChallengeType.CRATE_RAIN: crate.gameObject.transform.position = GenerateTopSpawnPosition(); crate.gameObject.SetActive(true); crate.ChallengeRainCrate(); break; case ChallengePickup.ChallengeType.LAUCHING_CRATES: crate.gameObject.transform.position = GenerateSideSpawnPosition(); crate.gameObject.SetActive(true); crate.ChallengeLauchCrate(); break; } }