Unity 实用教程 之 背景音乐和音效的管理模板

2025-10-29 03:17:22

1、打开Unity,新建一个空工程,具体如下图

Unity 实用教程 之 背景音乐和音效的管理模板

2、在工程中,新建一个脚本“AudioManager”,用来统一管理音频文件,具体如下图

Unity 实用教程 之 背景音乐和音效的管理模板

3、打开脚本进行编辑,首先设置脚本单例化,获取音频源,设置音频源属性,然后资源加载所有音频,接着用字典统一管理音频文件,实现播放背景音乐和播放音效的接口,具体的代码和代码说明如下图

Unity 实用教程 之 背景音乐和音效的管理模板

Unity 实用教程 之 背景音乐和音效的管理模板

Unity 实用教程 之 背景音乐和音效的管理模板

4、“AudioManager”代码如下:

using System.Collections;

using System.Collections.Generic;

using UnityEngine;

/// <summary>

/// Audio manager.音乐音效的简单管理器

/// </summary>

[RequireComponent(typeof(AudioSource))]

public class AudioManager : MonoBehaviour {

    //设置单例变量

    private static AudioManager instance;

    //设置单例属性

    public static AudioManager Instance{

        get{ 

            return instance;

        }

    }

    /// <summary>

    /// 将声音放入字典中,方便管理

    /// </summary>

    private Dictionary<string, AudioClip> _soundDictionary;

    //背景音乐和音效的音频源

    private AudioSource [] audioSources;

    private AudioSource bgAudioSource;

    private AudioSource audioSourceEffect;

    /// <summary>

    /// Awake this instance.

    /// </summary>

    void Awake () {

        //单例初始化

        instance = this;

    }

    /// <summary>

    /// Start this instance.

    /// </summary>

    void Start()

    {

        //加载资源存的所有音频资源

        LoadAudio ();

        //获取音频源

        audioSources = this.GetComponents <AudioSource> ();

        bgAudioSource = audioSources [0];

        bgAudioSource.playOnAwake = true;

        bgAudioSource.loop = true;

        audioSourceEffect = audioSources [1];

        audioSourceEffect.playOnAwake = false;

        audioSourceEffect.loop = false;

    }

    /// <summary>

    /// Loads the audio.

    /// </summary>

    private void LoadAudio(){

        //初始化字典

        _soundDictionary = new Dictionary<string, AudioClip> ();

        //本地加载 

        AudioClip [] audioArray = Resources.LoadAll<AudioClip> ("Audio");

        //存放到字典

        foreach (AudioClip item in audioArray) 

        {

            _soundDictionary.Add(item.name,item);

        }

    }

    /// <summary>

    /// Plaies the background audio.播放背景音乐

    /// </summary>

    /// <param name="audioName">Audio name.</param>

    public void PlayBGAudio(string audioName)

    {

        if (_soundDictionary.ContainsKey(audioName)) 

        {

            bgAudioSource.clip=_soundDictionary[audioName];

            bgAudioSource.Play();

        }

    }

    /// <summary>

    /// Plaies the audio effect.播放音效

    /// </summary>

    /// <param name="audioEffectName">Audio effect name.</param>

    public void PlayAudioEffect(string audioEffectName)

    {

        if (_soundDictionary.ContainsKey(audioEffectName)) 

        {

            audioSourceEffect.clip=_soundDictionary[audioEffectName];

            audioSourceEffect.Play();   

        }

    }

}

5、脚本编译正确,回到Unity界面,根据代码加载路径,新建文件夹路径,导入音频文件,然后,再新建一个脚本,测试“AudioManager”,具体如下图

Unity 实用教程 之 背景音乐和音效的管理模板

6、打开“Test”文件,根据音频文件名称,在Update函数中,使用“A”和“S”触发调用“AudioManager”的背景音乐和音效播放接口,具体代码和代码说明如下图

Unity 实用教程 之 背景音乐和音效的管理模板

7、脚本编译正确,回到Unity界面,在场景中新建一个空物体“GameObject”,挂在上俩脚本,然后在添加两个音频源,具体如下图

Unity 实用教程 之 背景音乐和音效的管理模板

8、运行场景,分别按下“A”和“S”键正常触发音乐音频播放,具体如下图

Unity 实用教程 之 背景音乐和音效的管理模板

9、到此,《Unity 实用教程 之 背景音乐和音效的管理模板》讲解结束,谢谢

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢