title: why does my raycast stop working after a few seconds?
body: <p>i have a gun that uses a raycast to detect an enemy. before this code was working perfectly but now 
    when 
     i shoot an enemy after i wait a couple seconds the raycast does not detect the enemy this is the gun code </p>
  
  <pre><code>using System.Collections;
     using UnityEngine;
  
     public class Gun : MonoBehaviour
     {
      public float damage = 25f;
      public float range = .00000000000000000000000001f;
      public float fireRate = 1f;
  
     public int maxAmmo = 5;
      private int currentAmmo;
      public float reloadTime = 3f;
     public bool isReloading = true;
  
      public Camera fpsCam;
      public ParticleSystem MuzzleFlash;
      public GameObject impactEffect;
      public float impactForce = 30f;
  
      private float nextTimeToFire = 0f;
  
      public Animator animator;
  
  
  
      private void Start()
      {
          currentAmmo = maxAmmo;
  
  
      }
  
      void OnEnable()
      {
          isReloading = false;
          animator.SetBool("Reloading", false);
      }
  
      // Update is called once per frame
      void Update()
      {
  
          if (isReloading)
              return;
  
  
          if (currentAmmo &lt;= 0)
          {
            StartCoroutine(Reload());
              return;
          }
  
          if (Input.GetButtonDown("Fire1") &amp;&amp; Time.time &gt;= nextTimeToFire)
          {
              nextTimeToFire = Time.time + 1f / fireRate;
              Shoot();
          }
      }
  
      IEnumerator Reload()
      {
          isReloading = true;
          Debug.Log("RELOAD");
  
          animator.SetBool("Reloading", true);
  
          yield return new WaitForSeconds(reloadTime - .25f);
          animator.SetBool("Reloading", false);
          yield return new WaitForSeconds(.25f);
  
          currentAmmo = maxAmmo;
  
  
          isReloading = false;
  
      }
  
      void Shoot()
      {
          MuzzleFlash.Play();
  
          currentAmmo--;
  
          RaycastHit hit;
          if (Physics.Raycast(fpsCam.transform.position, fpsCam.transform.forward, out hit, range))
          {
              Debug.Log(hit.transform.name);
  
              Enemy enemy = hit.transform.GetComponent&lt;Enemy&gt;();
              if (enemy != null)
              {
                  enemy.TakeDamage(damage);
              }
  
              if (hit.rigidbody != null)
              {
                  hit.rigidbody.AddForce(hit.normal * impactForce);
              }
  
  
              if (isReloading == true)
              {
                  animator.SetBool("Shooting", false);
  
              }
          }
  
          GameObject impactGO =  Instantiate(impactEffect, hit.point, 
     Quaternion.LookRotation(hit.normal));
          Destroy(impactGO, 2f);
  
      }
     }
  
  </code></pre>
  
  <p>here is the enemy script</p>
  
  <pre><code>
      **public class Enemy : MonoBehaviour
     {
      public float health = 50f;
  
      public void TakeDamage(float amount)
      {
          health -= amount;
  
          if (health &lt;= 0f)
          {
              Die();
          }
      }
  
  
  
      void Die ()
      {
          Destroy(gameObject);
      }
  
     }
  
  
  
  
  </code></pre>
  
  <p>this started happening after i added anenemy controller and animator to the enemy the raycast woukd hit.</p>