public void TakeShot() { GunMuzzle.transform.LookAt(playercenter); anim.SetBool("Aiming", true); anim.SetTrigger("Fire"); RaycastHit hit; int layerMask = (1 << 9) | (1 << 10) | (1 << 11); layerMask = ~layerMask; if (Physics.Raycast(GunMuzzle.transform.position, GunMuzzle.transform.forward, out hit, sightrange, layerMask)) { playerhitbox target = hit.transform.GetComponent <playerhitbox>(); if (target != null) { RateOfFire -= RateOfFireDecrease; if (RateOfFire < 1) { GameObject blik = Instantiate(blood, hit.point, Quaternion.LookRotation(hit.normal)) as GameObject; blik.transform.SetParent(target.transform); playerhud.GetComponent <HUD>().TakeDamage(damagetoplayer); Instantiate(GunSmoke, GunMuzzle.position, GunMuzzle.rotation); Instantiate(MuzzleFlash, GunMuzzle.position, GunMuzzle.rotation); RateOfFire = NewRateOfFire; isalert = true; } } } }
public void VisionCheck() { SPINE.position = new Vector3(transform.position.x, playercenter.transform.position.y, transform.position.z); RaycastHit hit; // int layerMask = (1 << 9) | (1 << 10) | (1 << 11); //npc layer and npc hitbox layer layerMask = ~layerMask; //inverts raycast so raycast avoids these layers if (Physics.Raycast(SPINE.position, SPINE.forward, out hit, sightrange, layerMask)) { playerhitbox target = hit.transform.GetComponent <playerhitbox>(); if (target != null) //if the ray hits the player { seen = true; seentimer = 10; strobelight.SetActive(true); shotsfiredbool = true; Debug.Log("seen" + gameObject.name); rb.Sleep(); rb.WakeUp(); Punch(); anim.SetBool("running", false); anim.SetBool("Aiming", true); var lookDir = player.position - transform.position; lookDir.y = 0; // keep only the horizontal direction transform.rotation = Quaternion.LookRotation(lookDir); anim.SetTrigger("Shuffle"); RateOfFire -= RateOfFireDecrease; //getting ready to fire npcmanager.GetComponent <NpcManagement>().JustFired(); //let npcmanager know to tell other npcs to ook around anim.SetBool("Aiming", true); isalert = true; TakeShot(); } if (target == null) { if (aggro == true) { if (seen == true) { CombatMovement(); } } } } }
public void grif() { RaycastHit hit; // int layerMask = (1 << 9) | (1 << 10) | (1 << 11); //npc layer and npc hitbox layer layerMask = ~layerMask; //inverts raycast so raycast avoids these layers if (Physics.Raycast(SPINE.position, SPINE.forward, out hit, sightrange, layerMask)) { playerhitbox target = hit.transform.GetComponent <playerhitbox>(); if (target != null) { //if the ray hits the player gottem = true; thisobj.SetActive(false); } } grod(); }