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(); } } } } }
void Start() { jumptimer = 10; Cursor.visible = false; rb = player.GetComponent <Rigidbody>(); col_size = player.GetComponent <CapsuleCollider>(); manj = npcManagement.GetComponent <NpcManagement>(); weps = Weaponmanj.GetComponent <WeaponManagement>(); }