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++; } }
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); } } } }