unity3d切换场景时,背景音乐保持播放

您所在的位置:网站首页 html如何跳转网页音乐继续播放音频 unity3d切换场景时,背景音乐保持播放

unity3d切换场景时,背景音乐保持播放

2024-07-17 09:23| 来源: 网络整理| 查看: 265

首先创建两个场景: One,Two

再创建一个空游戏对象: GameObject,并添加AudioSource组件,把要播放的音乐拖放进去

给GameObject添加脚本AlwayAudio,代码如下:

1 using UnityEngine; 2 using System.Collections; 3 4 public class AlwayAudio : MonoBehaviour { 5 6 void Start () { 7 DontDestroyOnLoad(this.gameObject); 8 } 9 } 保持GameObject不被销毁的代码

再来创建一个脚本AlwayAudio2,用于切换场景,此脚本放到摄像机即可:代码如下:

1 if (GUI.Button(new Rect(10,10,120,30),"load level")) { 2     if (Application.loadedLevelName=="One") { 3         Application.LoadLevel("Two"); 4     } 5     else { 6         Application.LoadLevel("One"); 7     } 8 } 切换场景代码

到这里已经可以从One到Two切换时没有问题,但是切换回来的时候会出现两个声音,一个是One重新生成的,另一个是没有被销毁的,为了解决这个问题我们把GameObject设置成预设,并添加个标签(tag):sound, 修改第二个脚本 , 添加如下代码 :

1 public GameObject obje; 2 GameObject obj=null; 3 4 void Start () { 5 obj = GameObject.FindGameObjectWithTag("sound"); 6 if (obj==null) { 7 obj = (GameObject)Instantiate(obje); 8 } 9 } 修改第二个脚本的代码

这个时候,把预设拖放给obje,把场景中的GameObject删掉

这样在场景One和Two之间切换已经没有问题了

 

来自:开发者社区



【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3