Unity development sound controller

Shown below 音效控制器.

/**************
 * 技能宠物音效控制器
 * 
 * ***/
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

namespace MR_LBS.Client.Unity3D
{
    
    
    //技能音效
    public enum SoundSkill : int
    {
    
    
        Unknow=0,
        overTime,
        battle1,
        battle2,
        win,
        lose,
        waiting1,
        coin,
        button1,
        errorTips,
        newCardTip,
        lightenUp,
        waiting2,
        waiting3

    }

    public class SoundManager : MonoBehaviour
    {
    
    

        public static SoundManager Instance;

       
        public AudioSource
            overTimeSound,//加时赛音效
            battle1,//加时赛音效
            battle2,
            win,
            lose,
            coin,
            waiting_1,
            button1,
            errorTips,
            newCardTip,
            lightenUp,
            waiting_2,
            waiting_3
            ;
               
        // Behaviour messages
        void Awake()
        {
    
    
            Instance = this;
        }
        public void PlaySound(SoundSkill soundName)
        {
    
    
            //Debug.Log("11");
            switch (soundName)
            {
    
    
                case SoundSkill.overTime:
                    overTimeSound.Play();
                    break;
                case SoundSkill.battle1:
                    battle1.Play();
                    break;
                case SoundSkill.battle2:
                    battle2.Play();
                    break;
                case SoundSkill.win:
                    win.Play();
                    break;
                case SoundSkill.lose:
                    lose.Play();
                    break;
                case SoundSkill.coin:
                    coin.Play();
                    break;
                case SoundSkill.waiting1:
                    waiting_1.Play();
                    break;
                case SoundSkill.button1:
                    button1.Play();
                    break;
                case SoundSkill.errorTips:
                    errorTips.Play();
                    break;
                case SoundSkill.newCardTip:
                    newCardTip.Play();
                    break;
                case SoundSkill.lightenUp:
                    lightenUp.Play();
                    break;
                case SoundSkill.waiting2:
                    waiting_2.Play();
                    break;
                case SoundSkill.waiting3:
                    waiting_3.Play();
                    break;
                default:break;
            }
        }
        public void PauseSound(SoundSkill soundName) {
    
    
            switch (soundName)
            {
    
    
                case SoundSkill.overTime:
                    overTimeSound.Pause();
                    break;
                case SoundSkill.battle1:
                    battle1.Pause();
                    break;
                case SoundSkill.battle2:
                    battle2.Pause();
                    break;
                case SoundSkill.win:
                    win.Pause();
                    break;
                case SoundSkill.lose:
                    lose.Pause();
                    break;
                case SoundSkill.coin:
                    coin.Pause();
                    break;
                case SoundSkill.waiting1:
                    waiting_1.Pause();
                    break;
                case SoundSkill.button1:
                    button1.Pause();
                    break;
                default: break;
            }
        }

        public void SlowCloseBGM(SoundSkill soundName,float time) {
    
    
            StartCoroutine(CloseBGM(soundName, time));
        }

        IEnumerator CloseBGM(SoundSkill soundName, float time) {
    
    
            AudioSource audioSource;
            if (soundName == SoundSkill.battle1) {
    
    
                audioSource = battle1;
            }
            else {
    
    
                audioSource = battle2;
            }

            while (audioSource.volume > 0.2f) {
    
    
                yield return new WaitForSeconds(0.5f);
                audioSource.volume -=  1 / (time * 4);
            }
        }

        
    }
}

Guess you like

Origin blog.csdn.net/qq_43505432/article/details/111028447