GameObject go = new GameObject("BgmBuffer");
↑のgoはどれか一つ確定的にしておいて(Ex. Cameraオブジェクトとか)にしておいて、そのObjectにあらかじめAudioSource(音楽用の)を引っ付けておくのが普通。
で go自体はGameObject.Find("/SomeBufferObject"); でひっぱっておけるようにする。
AudioSource as = go.GetComponent<AudioSource>();
AudioSource BgmBuffer = go.GetComponent("AudioSource") as AudioSource;
BgmBuffer.loop = true; // ループする
の部分も元のgoに AudioControle.csみたいなMonoBehaviourをつけておけば
class AudioControle : MonoBehaviior {
public playMusic(int musicid);
}
とか定義しておけばいいんじゃないの?

効果音とかは位置関係もあるからこういうのじゃ駄目だけど