using UnityEngine; public class BulletSpawner : MonoBehaviour { public GameObject prefab; public float bulletSpeed = 8f; Transform target; public Transform firePoint; public float min = 0.5f; public float max = 3f; float rate; float time; void Start() { time = 0f; rate = Random.Range(min, max); PlayerController player = FindFirstObjectByType(); if (player != null) { target = player.transform; } else { Debug.LogError("BulletSpawner: 플레이어를 찾을 수 없습니다! 씬에 PlayerController가 있는지 확인하세요."); } if (GameManager.instance != null) { GameManager.instance.RegisterSpawner(this); } } void Update() { if (target == null) return; time += Time.deltaTime; transform.LookAt(target); if (time >= rate) { time = 0f; rate = Random.Range(min, max); GameObject obj = Instantiate(prefab, firePoint.transform.position, firePoint.transform.rotation); obj.transform.LookAt(target); Bullet bulletScript = obj.GetComponent(); if (bulletScript != null) { bulletScript.speed = bulletSpeed; bulletScript.isPlayerBullet = false; } } } void OnDestroy() { if (GameManager.instance != null) { GameManager.instance.UnregisterSpawner(this); if (!GameManager.instance.isGameover) { GameManager.instance.RequestRespawn(); } } } }