There are three ways to play a sound:
1- Play(), which plays the sound currently stored in the AudioSource clip property (requires an AudioSource). You can declare several AudioClip variables or an AudioClip array, fill them at the Inspector, assign the sound you want to audio.clip and call audio.Play();
2- PlayOneShot(clip, vol), which plays the sound clip with volume vol - still requires an AudioSource. You can use the same procedure above to define the sounds, but there's no need to use the clip property, since you pass the AudioClip as a parameter;
3- PlayClipAtPoint(clip, point, vol), as @Molix suggested. You don't need an AudioSource because this function creates a temporary instance and kill it right after. It's useful when you don't want to create an AudioSource, or if you want the sound to play at a specific location;
NOTE: Only Play() affects and is affected by the audio source variables (pitch, isPlaying, loop etc.). If you need to change any of these characteristics or check isPlaying, use Play.
Sep 13 '11 at 10:34 PM