Unity中通过场景切换但音乐继续播放

在场景切换的过程中,我们希望场景中的背景音乐继续播放而不是从新播放,这时我们要通过DontDestroyOnLoad(this.gameObject)函数来实现这样的功能;

首先我们新建两个场景,将场景的名字分别命名为“001”和“002”,为了区分这两个场景,分别在里面建几个立方体已进行区分。建立一个空物体,在上面加上AudioSouce组建并添加背景音乐。

创建一个脚本名为AudioManager的脚本,

public class AudioManager: MonoBehaviour {
    void Start()
    {
        DontDestroyOnLoad(this.gameObject);
    }
}

然后将这个脚本挂在空物体,制作为预知物体。

(二):创建第二个脚本Test

public class Test: MonoBehaviour
{
    public GameObject objPrefabInstantSource;//音乐预知物体 
    private GameObject musicInstant = null;//场景中是否有这个物体  
    // Use this for initialization  
    void Start()
    {
        musicInstant = GameObject.FindGameObjectWithTag("sounds");
        if (musicInstant == null)
        {
            musicInstant = (GameObject)Instantiate(objPrefabInstantSource);
        }
    }
    void OnGUI()
    {
        if (GUILayout.Button("Load Level"))
        {
            if (Application.loadedLevelName == "001")//关于这个下面有详细介绍  
            {
                Application.LoadLevel("002");
            }
            else
            {
                Application.LoadLevel("001");
            }
        }
    }
}

这个脚本是先通过标签来查找场景中是否有这个预知物体,如果没有就创建一个。将这个脚本挂在两个场景的相机上,这样就可以在场景中分别切换了。


你可能感兴趣的:(Unity中通过场景切换但音乐继续播放)