Audio isn't playing for some reason

So I have this code and for some reason, the audio won’t play. Everything is setup correctly I believe. When I enter the game a split second of the water clip plays for some reason and stops but then when I go underwater, I hear no sound? Any help?

function Update () {
    if (transform.position.y < underwaterLevel) {
        RenderSettings.fog = true;
        RenderSettings.fogColor = Color (0, 0.4, 0.7, 0.6);
        RenderSettings.fogDensity = 0.04;
        
        underWaterSound.Play();
       // RenderSettings.skybox = noSkybox;
    }
 
    else {
        RenderSettings.fog = defaultFog;
        RenderSettings.fogColor = defaultFogColor;
        RenderSettings.fogDensity = defaultFogDensity;
        
        underWaterSound.Stop();
       // RenderSettings.skybox = defaultSkybox;
    }
}

I suspect you probably shouldn’t be telling the underWaterSound to play on Update. Instead check to see if the “underwater” state has changed:

private bool m_UnderWater = false;

void Update()
{
    if (transform.position.y < underwaterLevel)
        this._setUnderWater(true);
    else
        this._setUnderWater(false);
}

void _setUnderWater(bool state)
{
    if (state == m_UnderWater)
        return;

    m_UnderWater = state;

    if (m_UnderWater)
        underWaterSound.Play();
    else
        underWaterSound.Stop();
}