Audio controllers
Apparently the best way to control background music (BGM) and sound effects (SFX) was to create global booleans to be checked to play sounds. I reverted the original change from using the AudioListener.PlayClipAtPoint() static function and calling an if everytime to changing the original playR() function into a new playBGM() and playSFX() function, along with a new RandomSound_Mech, to check with the global boolean.
A6yog want to play background music randomly from an array of AudioClips, and that is fine (and better, since it will get boring without the shuffling), so I needed something to keep the state of the BGM, along with the ability to wait for the music to complete playing before switching to another track. That is easily solved with a coroutine and a play boolean to check if it is playing. (might change to audio.isplaying later)
As for the SFX, I used the original formula and...