A quick post in case anyone else runs into the same issues as I had with sound. I’m following the course in Unity 5.5 and there seem to be some peculiarities with the way Unity handles 2D sound. I was having major issues with my enemy explosion sounds being way way too quiet (practically inaudible) versus my player and enemy shot sounds. I have attached my shot sounds to the relevant game objects (EnemyShot and PlayerShot) with “Play On Awake” checked. This works fine in my game because the sounds are short and finish playing long before their containing shot objects reach the shredders I have set up at the top and bottom of the screen. I have my explosion sound attached to my enemy ships and that gets played using PlayClipAtPoint. The sound of the explosion was way too quiet. I first fixed this by playing the sound closer to the Audio Listener (attached to the main camera by default) using the following code:
AudioSource.PlayClipAtPoint(gameObject.GetComponent().clip,Camera.main.transform.position);
That worked but the sound was too loud. Altering the sound volume in the inspector didn’t alter the volume so I approached it in a different way. I amended the code by subtracting a Vector3 (0f,0f,2f) from the main camera position to place the sound a little further away from the audio listener. That worked but the whole thing felt like a bit of a kludge, so I did some more reading around the problem.
It turns out that the PlayClipAtPoint method has a third parameter that I didn’t know about:
public static void PlayClipAtPoint(AudioClip clip, Vector3 position, float volume = 1.0F);
So I amended my code as follows:
AudioSource.PlayClipAtPoint(gameObject.GetComponent().clip,transform.position,1f);
Lo and behold it works. Moral of the story: RTFM. 
[Update: Whilst it’s louder than before, it’s still not quite loud enough. Looking at other methods of making it louder. Suspect I need to be looking at the sound ‘rolloff’. Sticking with the camera kludge for now]

