Example #1
0
    public void SpawnEnemies(int count)
    {
        for (int i = 0; i < count; i++)
        {
            Transform          spawnPos          = Random.value >= 0.5f ? secondSpawnPos : transform;
            Vector3            randomRangeOffset = new Vector3(Random.Range(-randomRange, randomRange), 0, Random.Range(-randomRange, randomRange));
            Transform          Enemy             = Instantiate(enemyPrefab, spawnPos.position + randomRangeOffset, enemyPrefab.rotation);
            WeaponManager      weaponManager     = Enemy.gameObject.GetComponent <WeaponManager>();
            CPUInput           cpu  = Enemy.gameObject.GetComponent <CPUInput>();
            SendMessageOnDeath smod = Enemy.gameObject.GetComponent <SendMessageOnDeath>();
            int randomIndex         = Random.Range(-1, weapons.Length);

            if (randomIndex < 0)
            {
                weaponManager.equippedWeapon = null;
            }
            else
            {
                weaponManager.equippedWeapon = weapons[randomIndex];
            }

            smod.onDestroy.AddListener(EnemyDead);
            cpu.target = target;
            enemiesAlive++;
            enemiesSpawned++;
        }
    }
Example #2
0
    void OnTriggerStay(Collider collider)
    {
        if (collider.tag == LayerToCheck)
        {
            float distance = Vector3.Distance(transform.position, collider.transform.position);

            if (distance < closestCollider)
            {
                collidingWith   = collider;
                closestCollider = distance;
                SendMessageOnDeath smod = collider.GetComponent <SendMessageOnDeath>();
                if (smod)
                {
                    smod.onDestroy.AddListener(closestColliderDied);
                }
            }
            else if (!collidingWith)
            {
                collidingWith   = collider;
                closestCollider = distance;
                SendMessageOnDeath smod = collider.GetComponent <SendMessageOnDeath>();
                if (smod)
                {
                    smod.onDestroy.AddListener(closestColliderDied);
                }
            }
        }
    }