Adding audio to gun shot

I’m working on my first gun script and I was wondering how I would go about adding sound? I have added an Audio Source to the gun and imported my sound. Then do I add a public AudioClip with the files name? How would I get the sound to trigger when firing?

Thanks!

using UnityEngine;

public class Gun : MonoBehaviour
{

    public float damage = 10f;                  //Damage
    public float range = 500f;                  //Range of bullet
    public float fireRate = .50f;               //Greater fire rate = less time between shots.
    public float impactForce = 30f;             //Impact (force)
    public ParticleSystem Rail;                 //Particle System (Muzzle)
    public Camera fpsCam;                       //Camera. Click and drag off of hierarchy
    public GameObject impactEffect;             //Prefab system for impact
    

    private float nextTimeToFire = 0f;          //Instant shot (no lag when pressing down)











    void Update()
    {



        if (Input.GetButtonDown("Fire1") && Time.time >= nextTimeToFire)
        {
            nextTimeToFire = Time.time + 1f / fireRate;
            Shoot();



        }

    }
            

       

    void Shoot()
    {

        Rail.Play();                      //Play muzzle / barrel

        RaycastHit hit;
        if (Physics.Raycast(fpsCam.transform.position, fpsCam.transform.forward, out hit, range))

        {

          

            Target target = hit.transform.GetComponent<Target>();
            if (target != null)
            {
                target.TakeDamage(damage);
            }

            if (hit.rigidbody != null)             //Hit RIGIDBODY component
            {
                hit.rigidbody.AddForce(-hit.normal * impactForce);
            }

            GameObject impactGO = Instantiate(impactEffect, hit.point, Quaternion.LookRotation(hit.normal));
            Destroy(impactGO, .25f);  // Destroy impact effect 
            {
               
            }

        }
    }
}

@inaudiblefuzz

Youll need to get a reference to your audio source in your source function. And then when you fire your gun play a sound. Heres an example of how i would do it.

 AudioClip[] m_GunShotSounds; //So the shots don't sound the same every time
private AudioSource m_AudioSource; //The thing to play the audio

private void Start()
{
        m_AudioSource = GetComponent<AudioSource>();

        if (m_AudioSource == null)
        {
            Debug.LogError("No AudioSource found");
        }
}

void PlayShootingSound()
{
        //Get an audioClip
        int n = Random.Range(1, m_GunShotSounds.Length);
        m_AudioSource.clip = m_GunShotSounds[n];
        //If you need to change the volume
        m_AudioSource.volume = volume;
        //Play the sound once
        m_AudioSource.PlayOneShot(m_AudioSource.clip);


        // move picked sound to index 0 so it's not picked next time
        FootstepSounds[n] = FootstepSounds[0];
        FootstepSounds[0] = m_AudioSource.clip;
}

void Shoot()
{

     Rail.Play();                      //Play muzzle / barrel
     PlayShootingSound(); //Play a shooting sound
     //... the rest of your code
 }

}

The easiest way would be to put the script on to a gameobject, and then directly select the sound file from the audiosource component.