// 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>(); }
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); } }
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++; } }