void pickTrack(AudioSource source, AudioClip clip) { //First check to see if we are selecting a new track or sticking with the same one. if (Random.value < GameSettings.chanceToRepeatTrack) { //this checks against GameSettings variable for repetition. return; } else { //We are not repeating, so we are selecting a new clip. int index = Random.Range (0, sounds.Length); AudioClip newClip = sounds[index]; //assigns a new clip to the index determined randomly. if (clip.Equals(newClip)) { //if the newClip is the same as the clip we were just playing we do stuff. //just shifts by one, if at max, wrap to 0. if (index < sounds.Length-1) { newClip = sounds[index + 1]; } else { newClip = sounds[0]; } } source.clip = newClip; //After checks, assigns source.clip to be the newly made and assigned clip. } return; }