背景音乐不会因为切换场景而中断

1.两个场景

(1)第一个场景新建空物体GameObject挂上AudioSource组件,脚本挂上,把Tag改成sounds,再做成预设体。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class AudioManager : MonoBehaviour
{

	
	void Start ()
    {
        DontDestroyOnLoad(this.gameObject);
	}
	
}

(2)在全部场景的摄像机上,挂另一个脚本。其他场景的预设体setactive=false。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;

public class Test : MonoBehaviour
{

    public GameObject objPrefabInstantSource;//音乐预设体
    private GameObject musicInstant = null;//判断场景中是否有这个物体

	void Start ()
    {
        musicInstant = GameObject.FindGameObjectWithTag("sounds");
        if (musicInstant==null)
        {
            musicInstant = (GameObject)Instantiate(objPrefabInstantSource);
        }
	}

    public void OnClick()
    {
        SceneManager.LoadScene(1);
    }
}

 

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
UniApp是一种基于Vue.js的跨平台应用开发框架。在UniApp中,如果我们希望背景音乐在页面切换时不中断播放,可以采取以下措施。 首先,我们需要在UniApp的全局配置文件App.vue中设置页面切换时不销毁页面。我们可以通过将uni.config.js文件中的页面切换方式设置为'uni-app'来实现。这样做的目的是为了保持页面不被销毁,使背景音乐能够继续播放。 接下来,在App.vue中的onLaunch生命周期函数中,我们可以通过uni.getBackgroundAudioManager()方法来获取音乐播放器管理器的实例。然后,我们可以通过调用实例的方法来控制音乐的播放、停止、暂停等操作。 在每个页面的生命周期函数中,如onLoad、onShow等中,我们可以通过判断背景音乐是否在播放来决定是否继续播放音乐。如果背景音乐正在播放,则不做任何操作;如果背景音乐不在播放,则调用播放方法来继续播放音乐。 当页面切换时,UniApp会触发页面切换的生命周期函数,如onHide、onUnload等。在这些生命周期函数中,我们可以通过调用音乐播放器管理器实例的暂停方法来暂停音乐的播放,从而实现在页面切换时不中断背景音乐播放。 总之,通过在UniApp的全局配置文件中设置页面切换方式为'uni-app',在每个页面的生命周期函数中判断音乐是否在播放并做相应操作,以及在页面切换的生命周期函数中暂停音乐的播放,我们可以实现在页面切换背景音乐中断
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值