private IEnumerator SpawnEnemy()
    {
        yield return(new WaitForSeconds(spawnDelay));

        int       i             = Random.Range(0, EnemyPrefabs.Length);
        EnemyBase enemy         = Instantiate(EnemyPrefabs[i]);
        Vector2   spawnLocation = new Vector2();

        switch (enemy.Type)
        {
        case EnemyBase.EnemyTypes.Undefined:
            spawnLocation.x = maxX / 2f;
            spawnLocation.y = (maxY - minY) / 2f;
            break;

        case EnemyBase.EnemyTypes.Ground:
            spawnLocation.x = maxX / 2f;
            spawnLocation.y = minY;
            break;

        case EnemyBase.EnemyTypes.Air:
            spawnLocation.x = Random.Range(minX, maxX);
            spawnLocation.y = Random.Range(minY, maxY);
            break;

        default:
            break;
        }

        enemy.Spawn(spawnLocation);
        ArenaUI.SetEnemyName(enemy.GetType().ToString());

        enemy.OnDeath += EnemyDefeated;
    }
 private void Start()
 {
     ArenaUI.SetEnemyName("spawning...");
     CalculateBounds();
     StartCoroutine(SpawnEnemy());
 }