Unityでサウンドを再生する簡単な方法は、Audio SourceゲームオブジェクトにPlay On AwakeプロパティとLoopプロパティをオンにすればいい。
しかしSceneからSceneへ遷移する場合とBGMのゲームオブジェクトが消えてしまうため、この方法ではBGMを継続して再生されません。
この問題を解決するには、BGMのゲームオブジェクトがシーンに遷移しても消えないようにする必要があります。
そこでObjectクラス(MonoBehaviourの基底クラス)のDontDestroyOnLoad関数で実現できます。
BGM用オブジェクトを作成
BGM用オブジェクトを作成するためにまずはじめに空のゲームオブジェクトを作成します。オブジェクト名は「MainSoundObject」にしておきます。
音楽ファイルをBGM用オブジェクトに追加
音楽ファイルをBGM用オブジェクトに追加します。
AssetからBGMにしたいWAVファイルを、
MainSoundObjectにドラッグして追加します。
Scriptを追加する
MainSoundObjectにScriptを追加します。
Script名は「MainSoundScript」で言語はC#とします。
BGM用Scriptを記述する
BGM用ScriptにDontDestroyOnLoad関数を追加して、Sceneが遷移してもオブジェクトが消えないようにします。
using UnityEngine;
using System.Collections;
public class MainSoundScript : MonoBehaviour {
	public bool DontDestroyEnabled = true;
	// Use this for initialization
	void Start () {
		if (DontDestroyEnabled) {
			// Sceneを遷移してもオブジェクトが消えないようにする
			DontDestroyOnLoad (this);
		}
	}
	
	// Update is called once per frame
	void Update () {
	
	}
}
遷移処理を書く
遷移してもBGMが鳴ることを確認するためにキーを押すと、Sceneを遷移するように処理を追加します。
ここでは「A」を押すと遷移するようにします。
if ( Input.GetKeyDown(KeyCode.A) == true ) {
	Debug.Log("Now scene is " + Application.loadedLevelName);
	// Aキーを押すとシーンが遷移する
	Application.LoadLevel("Scene2");
}
最後に
Sceneを移動しても、BGMが鳴っていることが確認できました。

