using System.Collections; using System.Collections.Generic; using UnityEngine; namespace Saltosion.OneWeapon.Enemies { public class EnemySpawner : MonoBehaviour { public GameObject[] EnemyPrefabs; public float SpawnCooldown = 5.0f; public float SpawnChance = 0.5f; public int MaxEnemiesWhenSpawning = 5; public float Radius = 4; private float SpawnTime = 0.0f; private void Update() { if (SpawnTime > 0) { SpawnTime -= Time.deltaTime; } else { GameObject[] Enemies = GameObject.FindGameObjectsWithTag("Enemy"); if (Enemies.Length < 5 && Random.value < SpawnChance) { float DirectionRadians = Random.value * Mathf.PI * 2.0f; Vector2 Direction = new Vector2(Mathf.Cos(DirectionRadians), Mathf.Sin(DirectionRadians)); float Distance = Random.value * Radius; Instantiate(EnemyPrefabs[(int)(Mathf.Min(0.99f, Random.value) * EnemyPrefabs.Length)], (Vector2)transform.position + Direction * Distance, new Quaternion(), null); } SpawnTime = SpawnCooldown; } } private void OnDrawGizmosSelected() { Gizmos.color = Color.green; Gizmos.DrawWireSphere(transform.position, Radius); } } }