private IEnumerator SpawnEnemy(int amount, TrackPiece trackPiece, float spawnDelay = 1f)
    {
        //Debug.Log("Spawn Enemy");
        enemySpawnQueueCount += amount;
        for (int i = 0; i < amount; i++)
        {
            yield return(new WaitForEndOfFrame());

            if (i > trackPiece.enemySpawnPoints.Count)
            {
                break;
            }

            Transform        spawnPoint = trackPiece.enemySpawnPoints[i];
            WheelDriveCustom newEnemy   = LeanPool.Spawn(gameData.enemyPrefab, trackPiece.enemySpawnPoints[i].position,
                                                         trackPiece.enemySpawnPoints[i].rotation);
            enemies.Add(newEnemy);
            trackPiece.QueueEnemy(spawnPoint, newEnemy);
            enemySpawnQueueCount--;
        }
    }
 public void QueueEnemy(Transform spawnPoint, WheelDriveCustom enemy)
 {
     queuedEnemies[spawnPoint] = enemy;
 }
 public void EnemyKilled(WheelDriveCustom enemy)
 {
     enemies.Remove(enemy);
 }
 public void EnemySpawned(WheelDriveCustom enemy)
 {
     enemies.Add(enemy);
 }