private IEnumerator RespawnBoss(float time) { yield return(new WaitForSeconds(time)); int index = Random.Range(0, freeBossRespawnPoints.Count); BossRespawnPoint point = freeBossRespawnPoints[index]; BossAI bossAI = Instantiate(bossPrefab, enemyRespawnPointsTransform, false).GetComponent <BossAI>(); bossAI.transform.localPosition = point.positionInWorld; GameObject bossOnRadar = Instantiate(enemyOnRadarPrefab, radarTransform, false); bossOnRadar.transform.localPosition = point.positionOnRadar; HealthBar bossHealthBar = Instantiate(healthBarPrefab, hudTransform, false).GetComponent <HealthBar>(); bossHealthBar.transform.localPosition = point.positionOnHUD; ProgressBar bossProgressBar = Instantiate(progressBarPrefab, hudTransform, false).GetComponent <ProgressBar>(); bossProgressBar.transform.localPosition = point.positionOnHUD - progressBarOffset; bosses.Add(bossAI); bossAI.Init(bossOnRadar, bossHealthBar, bossProgressBar, point); freeBossRespawnPoints.Remove(point); takenBossRespawnPoints.Add(point); isBossRespawning = false; isBossRespawned = true; }