Unity3D播放音樂還算挺方便的。
主要要用到三個類:
每個場景都只能有一個AudioListener,多於1個就會提示錯誤。
現在遇到的情況是,想要多個場景共享一個背景音樂。
寫了一個單例用來管理音樂:
using UnityEngine; using System.Collections; public class AudioManager : MonoBehaviour { private static AudioManager instance = null; public AudioSource audioMgr; private AudioClip ac; private string curMusicName = ""; public static AudioManager Instance { get { return instance; } } void Awake() { if (instance != null && instance != this) { Destroy(this.gameObject); } else { instance = this; } DontDestroyOnLoad(this.gameObject); } public void Play(string fileName) { if (!fileName.Equals(curMusicName)) { ac = Resources.Load("Audio/"+fileName) as AudioClip; audioMgr.clip = ac; audioMgr.Play(); curMusicName = fileName; } } public void Stop() { audioMgr.Stop(); curMusicName = ""; Debug.Log("Stop background music"); } }
聖典上有個插件:
http://game.ceeger.com/forum/read.php?tid=789
我沒用過,有興趣的可以試一下。