예제 #1
0
    void SpawnEnemiesFunc(EnemyType currentEnemyType)
    {
        if (currentWaveNumber < currentEnemyType.waveStart)
        {
            return;
        }


        if (Time.time >= currentEnemyType.nextEnemySpawnTime && currentEnemyType.enemyCount > 0)
        {
            currentEnemyType.enemyCount--;
            enemiesRemainingToSpawn--;
            enemiesRemainingAlive++;

            currentEnemyType.nextEnemySpawnTime = Time.time + currentEnemyType.timeBetweenSpawn;

            GameObject newUnit = poolScript.GetPoolObject(currentEnemyType.enemie);

            newUnit.GetComponent <ProgressBarScript>().currentHealth = newUnit.GetComponent <ProgressBarScript>().maxHealth;

            newUnit.GetComponent <ProgressBarScript>().OnDeath += OnEnemyDeath;

            newUnit.transform.position = spawnPosition.position;
        }
    }
예제 #2
0
    void AttackAllNearEnemy()
    {
        List <GameObject> enemies = FindAllNearEnemy();

        if (enemies == null)
        {
            return;
        }

        foreach (GameObject enemy in enemies)
        {
            GameObject   newBullet       = poolScript.GetPoolObject(bulletG);
            BulletScript newBulletScript = newBullet.GetComponent <BulletScript>();

            newBulletScript.target       = enemy;
            newBulletScript.attackDamage = attackDamage;
            newBulletScript.moveSpeed    = bulletSpeed;

            newBullet.transform.position = shootPos.transform.position;
            AudioManager.instance.Play("Tower Shoot", true);
        }
    }