using UnityEngine; public class EnemySpawner : MonoBehaviour { [SerializeField] private Enemy enemyPrefab; [SerializeField] private Transform[] spawnPoints; [SerializeField] private GameManager gameManager; [SerializeField] private float initialInterval = 2f; [SerializeField] private float minimumInterval = 0.5f; [SerializeField] private float intervalDecreasePerSecond = 0.02f; private float elapsedTime; private float nextSpawnTime; private void Update() { if (gameManager != null && !gameManager.IsPlaying) { return; } elapsedTime += Time.deltaTime; if (Time.time >= nextSpawnTime) { Spawn(); nextSpawnTime = Time.time + CurrentInterval(); } } private float CurrentInterval() { return Mathf.Max(minimumInterval, initialInterval - elapsedTime * intervalDecreasePerSecond); } private void Spawn() { var spawnPoint = spawnPoints[Random.Range(0, spawnPoints.Length)]; Instantiate(enemyPrefab, spawnPoint.position, spawnPoint.rotation); } }