//shooting void Shoot() { RaycastHit hit; au.PlayOneShot(au.clip); GunKick(); //for each bullet to be fired per click for (int i = 0; i < gun.pelletCount; i++) { //displace the ray direction by a certain amount Vector3 bulletSpread = cam.transform.forward + (Random.insideUnitSphere * gun.accuracy); muzzleFlash.Play(); Ray ray = new Ray(cam.transform.position, bulletSpread); if (Physics.Raycast(ray, out hit, gun.range, layerMask)) { //spawn a laser hit effect at the place of impact ParticleSystem spawnedSpray = Instantiate(spray, hit.point, Quaternion.identity) as ParticleSystem; spawnedSpray.transform.parent = particleParent.transform; //check if any of the following enemies were hit and damage them if they were Drone d = hit.transform.GetComponent <Drone> (); if (d != null) { d.TakeDamage(Mathf.Round(Random.Range(gun.damage * 0.8f, gun.damage * 1.2f))); inv.money += 10; } Mutant m = hit.transform.GetComponent <Mutant> (); if (m != null) { m.TakeDamage(Mathf.Round(Random.Range(gun.damage * 0.8f, gun.damage * 1.2f))); inv.money += 10; } BossParts bp = hit.transform.GetComponent <BossParts> (); if (bp != null) { bp.TakeDamage(Mathf.Round(Random.Range(gun.damage * 0.8f, gun.damage * 1.2f))); } MissileSeek mi = hit.transform.GetComponent <MissileSeek> (); if (mi != null) { mi.TakeDamage(Mathf.Round(Random.Range(gun.damage * 0.8f, gun.damage * 1.2f))); } } } tc.updateMoney(inv.money); }