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;
        }
    }