void Shoot() { Ray ray = new Ray(transform.position, transform.forward); RaycastHit hit; // casting ray, then get hitting info of object if (Physics.Raycast(ray, out hit, shootRange)) { // hit effect on if (hitEffectPrefab != null) { if (hitEffect != null) { hitEffect.transform.position = hit.point; hitEffect.transform.rotation = Quaternion.FromToRotation(Vector3.forward, hit.normal); hitEffect.SetActive(true); } else { hitEffect = Instantiate(hitEffectPrefab, hit.point, Quaternion.identity); } } string tagName = hit.collider.gameObject.tag; if (tagName == "Sphere") { Sphere sphere = hit.collider.gameObject.GetComponent <Sphere>();; sphere.Attacked(); } } Ammo--; }