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--;
    }