Esempio n. 1
0
    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;
    }