Пример #1
0
    //    also make the gunscript have traits that we can just modify and make prefabs for
    //like ammo capacity, fire rate, semi vs auto etc
    //bullet casings, mag drops,

    void Start()
    {
        ammo = magCapacity;
        //InvokeRepeating("shoot", 0, rateOfFire);
        ai     = aiplayer.GetComponent <navmeshtesterguy>();
        audios = GetComponent <AudioSource>();
    }
Пример #2
0
    public void shoot()
    {
        reload = false;

        trigger = true;
        RaycastHit bullet;

        Physics.Linecast(transform.position, enemy.transform.position, out bullet, -1);
        if (bullet.collider.gameObject == enemy && gunscript.isShooting == true)
        {
            enemyscript         = enemy.GetComponent <navmeshtesterguy>();
            enemyscript.health -= gunscript.damage;
            Instantiate(blood, bullet.collider.transform.position, transform.rotation);
        }
        if (bullet.collider.gameObject.tag != enemy.tag && gunscript.isShooting == true)
        {
            Instantiate(wallhit, bullet.collider.transform.position, transform.rotation);
        }
    }
Пример #3
0
    void Update()
    {
        //visibleenemies.Clear();
        if (x < 10)
        {
            StartCoroutine("waitFor2");
            newpos  = transform.position;
            newpos2 = transform.position;
            GetComponent <BoxCollider>().enabled = false;
        }
        if (x > 100)
        {
            GetComponent <BoxCollider>().enabled = true;
        }
        aitoWaypointdistance  = Vector3.Distance(newpos, transform.position);
        aitoWaypointdistance2 = Vector3.Distance(newpos2, transform.position);

        //enemy = null;
        gunscript = gun.GetComponent <gunscriptv1>();
        //visibleenemies.Clear();
        if (health <= 0)
        {
            anim.enabled   = false;
            gameObject.tag = "DEAD";
            //Destroy(this);
            agent.enabled = false;
        }
        if (gameObject.tag != "DEAD")
        {
            enemies = GameObject.FindGameObjectsWithTag(enemytag);
            foreach (GameObject e in enemies)
            {
                RaycastHit eHit;
                Physics.Linecast(transform.position, e.transform.position, out eHit, -1);
                {
                    if (eHit.collider != null)
                    {
                        if (eHit.collider.tag == enemytag)
                        {
                            visibleenemies.Add(e);
                        }
                    }
                }
            }
            if (visibleenemies.Count > 0)
            {
                enemy       = findClosestTarget(enemytag, visibleenemies);
                enemyscript = enemy.GetComponent <navmeshtesterguy>();
            }
            else if (gunscript.ammo < gunscript.magCapacity && visibleenemies.Count == 0)
            {
                reload = true;
            }



            /*if (Input.GetMouseButtonDown(0))
             * {
             *  RaycastHit hit;
             *
             *  if (Physics.Raycast(Camera.main.ScreenPointToRay(Input.mousePosition), out hit, 1000))
             *  {
             *      agent.destination = hit.point;
             *  }
             * }*/
            attackReload();
            //or
            goTowardsEnemy();


            Debug.DrawLine(transform.position, enemy.transform.position);
            x++;
        }
    }