void LoadLevel() { LevelConfig levelConfig = chapterConfig.levels[CurrentLevel]; List <Enemy> newEnemyList = levelBuilder.BuildLevel(levelConfig); enemiesCount = newEnemyList.Count; // Init Controllers enemyMoveManager.Init(levelConfig.enemyConfig, newEnemyList); enemyShootManager.Init(levelConfig, newEnemyList); uiGameManager.Init(levelConfig.playerConfig.lives); // Callbacks levelBuilder.Player.onPlayerHit += OnPlayerHit; levelBuilder.Player.onPlayerHit += uiGameManager.OnPlayerHit; enemyMoveManager.onEnemyReachedLimit += Lose; foreach (Enemy enemy in newEnemyList) { enemy.onEnemyKilled += OnEnemyKilled; } StartCoroutine(StartLevelCoroutine()); }