void Update() { transform.forward = player.transform.forward; if (Time.time > nextFire) { nextFire = Time.time + Random.Range(fireRateMin, fireRateMax); RaycastHit hit; rayOrigin.transform.LookAt(player.transform.position); Ray rayTest = new Ray(rayOrigin.transform.position, rayOrigin.transform.forward); if (Physics.Raycast(rayTest, out hit, 100f)) { Debug.DrawRay(rayOrigin.transform.position, rayOrigin.transform.forward * 100, Color.blue); if (hit.collider.tag == "Player") { float acc = Random.Range(0, 100); if (acc < 80) { playerScript.TakeDamage(Random.Range(0, 15)); } } } } }
// Update is called once per frame void Update() { transform.forward = player.transform.forward; if (triggered) { anim.SetBool("BaddieTriggered", true); //Debug.Log(Vector3.Distance(transform.position, player.transform.position)); if (Vector3.Distance(transform.position, player.transform.position) <= range) { anim.SetBool("BaddieWalking", false); agent.destination = transform.position; if (Time.time > nextFire) { float acc = Random.Range(0, 100); nextFire = Time.time + Random.Range(fireRateMin, fireRateMax); anim.SetTrigger("BaddieShoot"); //raycast goes here RaycastHit hit; rayOrigin.transform.LookAt(player.transform.position); Ray rayTest = new Ray(rayOrigin.transform.position, rayOrigin.transform.forward); if (Physics.Raycast(rayTest, out hit, 100f)) { Debug.DrawRay(rayOrigin.transform.position, rayOrigin.transform.forward * 100, Color.blue); //Debug.Log("Seen"); if (hit.collider.tag == "Player") { if (acc < 80) { playerScript.TakeDamage(10); } } } } } else { agent.destination = player.transform.position; anim.SetBool("BaddieWalking", true); } } }