using UnityEngine; public class EnemyShooter : MonoBehaviour { public float shootRange = 25f; public float shootDelay = 1f; public int damage = 10; private PlayerHealth player; private float nextShotTime; void Start() { player = FindFirstObjectByType(); } void Update() { if (PauseMenu.GameIsPaused || player == null) return; Vector3 direction = player.transform.position - transform.position; if (direction.magnitude > shootRange) return; direction.y = 0f; if (direction != Vector3.zero) transform.rotation = Quaternion.LookRotation(direction); if (Time.time >= nextShotTime && CanSeePlayer()) { player.TakeDamage(damage); nextShotTime = Time.time + shootDelay; } } bool CanSeePlayer() { Vector3 start = transform.position + Vector3.up; Vector3 target = player.transform.position + Vector3.up; Vector3 direction = target - start; if (Physics.Raycast(start, direction.normalized, out RaycastHit hit, shootRange)) return hit.collider.GetComponentInParent() != null; return false; } }