unity 通过场景名称实现动态加载背景BGM音乐

在场景中创建一个空物体对象,然后将代码挂载到空物体

需要注意的是,场景中需要有以下组件

  一般在主摄像头里

   添加到代码挂载的空物体上

将场景中类的公开变量  signInBGM,xinShouCun赋值即可调用,不要忘了挂脚本到物体上

PlayBGM()类,需要传参string类型的场景名称,在场景加载或者切换的位置调用

 

AudioManager 类

 1  1 using System.Collections;
 2  2 using System.Collections.Generic;
 3  3 using UnityEngine;
 4  5 
 5  6 //音乐管理类
 6  7 public class AudioManager : MonoBehaviour
 7  8 {   
 8  9     [Header("BGM音乐源")]
 9 10     public AudioSource audioSource;
10 11 
11 12     [Header("BGM")]
12 13     public AudioClip signInBGM;
13 14     public AudioClip xinShouCun;
14 15 
15 16     void Awake() {
16 17         DontDestroyOnLoad(this);
17 18     }
18 19 
19 20     private void Start() {
20 21         audioSource = GetComponent<AudioSource>();
21 22         audioSource.clip = signInBGM;
22 23         audioSource.Play();
23 26     }
24 27 
25 28     //播放BGM,根据参数场景名称判断
26 29     public void PlayBGM(string sceneName){
27 30         Debug.Log("进入播放音乐方法  + " + sceneName);
28 31         switch(sceneName){
29 32             case    "登陆界面":
30 33                 audioSource.clip = signInBGM;
31 34                 audioSource.Play();
32 35                 break;
33 36             case    "新手村":
34 37                  audioSource.clip = xinShouCun;
35 38                  audioSource.Play();
36 39                 break;
37 40             default:
38 41                 break;
39 42         }
40 43     }
41 45 }

 

posted @ 2022-11-15 14:17  伊凡晴天  阅读(258)  评论(0编辑  收藏  举报