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 @   伊凡晴天  阅读(298)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示