void SpawnEnemy() { if (currentEnemy != null) { Debug.LogWarning("Trying to spawn a second enemy to scene!"); } EnemyConfig enemyToSpawn = currentState.Enemy; switch (enemyToSpawn.Type) { case EnemyType.DRAGON: Debug.Log("Spawning Dragon"); currentEnemy = GameObject.Instantiate(dragonPrefab1).GetComponent<EnemyController>(); break; case EnemyType.DRAGON2: Debug.Log("Spawning Dragon"); currentEnemy = GameObject.Instantiate(dragonPrefab1).GetComponent<EnemyController>(); break; case EnemyType.LIZARD: Debug.Log("Spawning Lizard"); currentEnemy = GameObject.Instantiate(lizardPrefab1).GetComponent<EnemyController>(); break; case EnemyType.LIZARD2: Debug.Log("Spawning Lizard"); currentEnemy = GameObject.Instantiate(lizardPrefab1).GetComponent<EnemyController>(); break; case EnemyType.BOSS: Debug.Log("Spawning Boss"); currentEnemy = GameObject.Instantiate(bossPrefab1).GetComponent<EnemyController>(); break; case EnemyType.BOSS2: Debug.Log("Spawning Boss"); currentEnemy = GameObject.Instantiate(bossPrefab1).GetComponent<EnemyController>(); break; case EnemyType.IMP: Debug.Log("Spawning Imp Boss"); currentEnemy = GameObject.Instantiate(defaultEnemyPrefab).GetComponent<EnemyController>(); break; default: Debug.LogWarning(string.Format("Couldn't find enemy type {0}", enemyToSpawn.Type)); break; } currentEnemy.Config = enemyToSpawn; currentEnemy.OnSequenceChanged += EnemyController_OnSequenceChanged; currentEnemy.OnEnemyDefeated += CurrentEnemy_OnEnemyDefeated; currentEnemy.EnterGameArea(); }