如果您查看详细代码,则可以尝试此代码。
首先:制作一个脚本"SoundFxScript.cs" //你可以随意修改
插入此代码:
public class SoundFxScript : MonoBehaviour {
//Background Music
public AudioSource Scene1_Sound;
public AudioSource Scene2_Sound;
// Use this for initialization
void Start () {
PlayBackgroundMusic ();
}
// Update is called once per frame
void Update () {
}
public void PlayBackgroundMusic() {
if (UnityEngine.SceneManagement.SceneManager.GetActiveScene ().name == "Scene1") {
Scene1_SoundPlay();
} else if (UnityEngine.SceneManagement.SceneManager.GetActiveScene ().name == "Scene2") {
Scene2_SoundPlay();
}
}
public void Scene1_SoundPlay() {
Scene1_Sound.Play ();
Scene2_Sound.Stop ();
}
public void Scene2_SoundPlay() {
Scene1_Sound.Stop ();
Scene2_Sound.Play ();
}
// Step Fifth
public void LoadTheScene (string Scenename) {
UnityEngine.SceneManagement.SceneManager.LoadScene (Scenename);
sf.PlayBackgroundMusic ();
}
}
第二步:在第一个场景中设置 Gameobject name = "SoundMusic" 并添加组件脚本 SoundFxScript.cs。在游戏对象 "SoundMusic" 中,您可以为场景 1 和场景 2 添加背景音乐。
第三:制作单例文件Singleton.cs
插入此代码:
public class Singleton : MonoBehaviour {
static Singleton instance = null;
void Start ()
{
if (instance != null)
{
Destroy(gameObject);
return;
}
DontDestroyOnLoad(gameObject);
instance = this;
}
}
第四:在游戏对象“SoundMusic”添加组件脚本“Singleton.cs”
第五:如何调用另一个场景(加载场景)。这个方法在 SoundFxScript.cs
里面
示例您有一个调用加载场景的方法。试试这个方法:
调用它:LoadTheScene("Scene2") //调用scene2
在这里,您可以从您拥有的任何脚本中调用您的 SoundFxscript.cs 组件。
例子:
SoundFxScript sf;
sf = GameObject.Find ("SoundMusic").GetComponent<SoundFxScript> ();
您可以使用方法LoadTheScene加载一个新场景,背景音乐将根据场景重新播放。
仅此而已。