Unity3D工具类 - 声音管理器(AudioManager)

AudiomManager.cs

using UnityEngine;

public class AudioManager
    {

        public static readonly AudioManager instance = new AudioManager();

        public AudioSource m_AudioMgr;


        private AudioClip playClip;
        private string curMusicName = "";
        private AudioManager()
        {
            init();
        }

        public void init()
        {

        }
        public void PlayBG(string fileName)
        {
            if (!fileName.Equals(curMusicName))
            {
                /*playClip = Resources.Load(Constant.BackGround + fileName) as AudioClip;
                m_AudioMgr.clip = playClip;
                m_AudioMgr.Play();
                curMusicName = fileName;*/
            }
            //Debug.Log("背景音乐: "+fileName);
        }






   public void PlayBG(AudioClip m_PlayClip)
        {
            m_AudioMgr.clip = m_PlayClip;
            m_AudioMgr.Play();
        }

        public void StopBG()
        {
            m_AudioMgr.Stop();
            curMusicName = "";
        }

        public AudioSource Play(AudioClip clip, Transform emitter, bool loop)
        {
            return Play(clip, emitter, 1f, 1f, loop);
        }

        public AudioSource Play(AudioClip clip, Transform emitter, float volume, bool loop)
        {
            return Play(clip, emitter, volume, 1f, loop);
        }


        public AudioSource Play(AudioClip clip, Transform emitter, float volume, float pitch, bool loop)
        {
            GameObject go = new GameObject("Audio:" + clip.name);
            go.transform.position = emitter.position;
            go.transform.parent = emitter;

            // create the source
            AudioSource source = go.AddComponent<AudioSource>();
            source.clip = clip;
            source.volume = volume;
            source.pitch = pitch;
            source.loop = loop;

            if (!loop)
            {
               GameObject.Destroy(go, clip.length);
            }

            return source;
        }

        public AudioSource Play(AudioClip clip, bool loop)
        {
            if(clip)
                return Play(clip, Vector3.zero, 1f, 1f, loop);
            else
            {
                return null;
            }
        }

        public AudioSource Play(AudioClip clip, Vector3 point, float volume, bool loop)
        {
            return Play(clip, point, volume, 1f, loop);
        }


        public AudioSource Play(AudioClip clip, Vector3 point, float volume, float pitch, bool loop)
        {
            GameObject go = new GameObject("Audio:" + clip.name);
            go.transform.position = point;
            AudioSource source = go.AddComponent<AudioSource>();
            source.clip = clip;
            source.volume = volume;
            source.pitch = pitch;
            source.loop = loop;
            source.Play();
            if (!loop)
            {
            GameObject.DestroyObject(go, clip.length);
            }
            return source;
        }

        public void PlayBackage()
        {
            AudioClip objPrefab = (AudioClip)Resources.Load("music/BG");
            Play(objPrefab, true);
        }


        public void PlayWin()
        {
            AudioClip objPrefab = (AudioClip)Resources.Load("music/win");
            Play(objPrefab, false);
        }

        //选择商店商品及道具
        /* public void playSelectItem()
         {
             AudioClip clip = ResManager.Instance.loadSound(Config.MUSIC_ROOT_PATH + "shop_select");
             Play(clip, false);
         }

         //购买道具
         public void playBuyItem()
         {
             AudioClip clip = ResManager.Instance.loadSound(Config.MUSIC_ROOT_PATH + "shop_buyItem");
             Play(clip, false);
         }

         //coop 超时
         public void playTimeOut()
         {
             AudioClip clip = ResManager.Instance.loadSound(Config.MUSIC_ROOT_PATH + "timeover");
             Play(clip, false);
         }

         public void playBtnClick()
         {
             AudioClip clip = ResManager.Instance.loadSound(Config.MUSIC_ROOT_PATH + "sound_button");
             Play(clip, false);
         }*/
    }
  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值