关于 Unity 音乐音效管理

本文转载自:http://blog.csdn.net/microsoftMSDNNET/article/details/47273239


在实战项目中,音乐音效的好坏肯定是一个玩家对此项目评定的一个因素之一。所以,有必要对音乐音效做出一个统一的管理。

 首先,我把几个音效放到了Resouces的Audios文件夹下,方便动态加载。

这里写图片描述 
之后,利用一个非常简单的单例,建了一个空物体当做管理音乐的gameObject,将音乐音效统一管理起来,代码如下:

public class SoundManager:MonoBehaviour 
{
    //------------------------------//
    /// <summary>
    /// 单例模式
    /// </summary>
    public static readonly SoundManager instance=new SoundManager ();
    private SoundManager ()
    {

    }
    //------------------------------//


    /// <summary>
    /// 将声音放入字典中,方便管理
    /// </summary>
    private Dictionary<string, AudioClip> _soundDictionary;
    private AudioSource [] audioSources;

    private AudioSource bgAudioSource;
    private AudioSource audioSourceEffect;

    void Awake()
    {
        instance = this;

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

        //本地加载 
        AudioClip [] audioArray = Resources.LoadAll<AudioClip> ("AudioCilp");

        audioSources = GetComponents<AudioSource> ();
        bgAudioSource = audioSources [0];
        audioSourceEffect = audioSources [1];

        //存放到字典
        foreach (AudioClip item in audioArray) 
        {
            _soundDictionary.Add(item.name,item);
        }
    }

    //播放背景音乐
    public void PlayBGaudio(string audioName)
    {
        if (_soundDictionary.ContainsKey(audioName)) 
        {
            bgAudioSource.clip=_soundDictionary[audioName];
            bgAudioSource.Play();
        }
    }
    //播放音效
    public void PlayAudioEffect(string audioEffectName)
    {
        if (_soundDictionary.ContainsKey(audioEffectName)) 
        {
            audioSourceEffect.clip=_soundDictionary[audioEffectName];
            audioSourceEffect.Play();   
        }
    }
}

 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63

音效是一直在场景中不消失的,所以要保证切换场景的时候资源不会删除。

    //=============================================//
    static bool isHaveAudio=false ;
    public GameObject tempGameObject;
    //=============================================//
    //不销毁音效
    void Start()
    {
        if (!isHaveAudio) 
        {
            tempGameObject=Instantiate(Resources.Load("SoundManage"))as GameObject;
            isHaveAudio=true ;
        }
        DontDestroyOnLoad (tempGameObject);
    }
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

使用:先执行加载预设(Start())脚本。 
SoundManage是个预设,预设绑定SoundManager.cs脚本。


  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Unity简易音乐播放器是一种基于Unity引擎开发的简单音乐播放器应用程序。它具有以下特点和功能: 1. 用户界面友好:该音乐播放器使用Unity的UI系统进行开发,具有直观的用户界面,易于操作和使用。用户可以轻松地浏览和选择音乐文件进行播放。 2. 音乐文件管理:该播放器允许用户管理和组织音乐文件。用户可以导入、导出和删除音乐文件,创建和编辑个人播放列表。 3. 播放控制功能:播放器具有基本的音乐播放控制功能,如播放、暂停、停止、上一曲和下一曲。用户可以通过简单的点击按钮来控制音乐的播放。 4. 音乐可视化效果:播放器还具有音乐可视化效果,通过动态显示音乐的波形图或频谱图等视觉效果,增加音乐欣赏的乐趣。 5. 自定义选项:用户可以根据自己的喜好和需求进行各种自定义设置,如音量调节、音乐循环模式、音效等。 6. 多平台支持:该播放器可以在多个平台上运行,如Windows、Mac、iOS和Android等。 7. 其他功能:播放器还可以提供一些其他功能,如定时关闭、背景播放等。 Unity简易音乐播放器是一种方便实用的应用程序,可以帮助用户管理和享受音乐。通过其友好的用户界面和丰富的功能,用户可以轻松地播放和控制自己喜爱的音乐。无论是在电脑上还是移动设备上,都可以随时随地欣赏好听的音乐
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值