Пример #1
0
    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;
                }
            }
        }
    }
Пример #2
0
    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();
                    }
                }
            }
        }
    }
Пример #3
0
    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();
    }