AudioMixer_混音器

1.首先他是個(gè)什么東西

  • 他的創(chuàng)建方式Project->右擊創(chuàng)建->AudioMixer組件凉泄,這個(gè)東西只能和AudioSource結(jié)合使用秋泄,大概就是AudioSource通過(guò)混音器輸出聲音册着,可以對(duì)聲音進(jìn)行更細(xì)膩的控制斟冕。雙擊打開大概就如下圖所示荧琼,標(biāo)紅的地方關(guān)鍵點(diǎn)


    QQ截圖20190505140729.png
  • 那下圖是我做好的一個(gè)混合器丽惶,亂七八糟的箭頭是啥意思那炫七,


    QQ截圖20190505142029.png
  1. Gourps-這個(gè)就是相當(dāng)于幾個(gè)音響,音樂(lè)(AudioSource【OutPut】)從那個(gè)音響輸出蚊夫,對(duì)應(yīng)關(guān)系自己看一下就可以
  2. Add-同的音響的音效中間這個(gè)面板的塊上有個(gè)Add按鈕可以添加不同音效诉字,讓聲音聽起來(lái)酷,這里不是專業(yè)的只是試了一下。
  3. Exposed Paramters-這個(gè)東西就是一個(gè)接口相當(dāng)于音響的控制按鈕壤圃,通過(guò)腳本去控制這個(gè)值陵霉,比如上面的三個(gè)Volume就是對(duì)應(yīng)三個(gè)音響的音量。在那幾個(gè)圈圈上右擊選擇帶有exposed的可以在Exposed Paramters看到了
  • 其實(shí)還是很簡(jiǎn)單的伍绳,我主要是用來(lái)控制游戲中背景音樂(lè)和音效踊挠,Master主音量,Music和Effect對(duì)應(yīng)的是背景音樂(lè)和音效冲杀,正如Gourps看到的父子關(guān)系一樣效床,主音量控制背景音樂(lè)和音效的,就像爸爸可以管兒子是不是和下圖系統(tǒng)的音量合成器有點(diǎn)像
QQ截圖20190505143907.png
QQ截圖20190505144334.png
  • 最后再附上對(duì)應(yīng)的腳本看看
/**
 *Copyright(C) 2019 by #PROJECTNAME#
 *All rights reserved.
 *FileName:     #SCRIPTFULLNAME#
 *Author:      Nxf 
 *Version:      #VERSION#
 *UnityVersion:#UNITYVERSION#
 *Date:        #DATE#
 *Description:   
 *History:  
*/
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Audio;

namespace BioVR.Service
{
    public enum VolumType
    {
        MusicVolume,
        EffectVolume,
        MasterVolume,
    }

    public enum SoundType
    {
        Music,
        Effect,
    }
    public interface ISoundService
    {
        //聲音的開關(guān)
        void ControlVolume(VolumType volumType, float _volume);


        void PlaySound(AudioClip clip, bool loop);
        void PlaySound(AudioSource source, AudioClip clip, bool loop, bool isEffectMixerGroup);
        void PlaySoundLenth(AudioSource source, AudioClip clip, float time);
        void Stop(AudioSource source);
        void Stop();
    }
    public class SoundService : ISoundService
    {
        AudioSource _audioSourceSound;
        AudioMixer _audioMixer
        {
            get
            {
                return SoundLoader.ExpmAudioMixer;
            }
        }
        public SoundService()
        {

        }

        public SoundService(AudioSource audioSourceSound, bool isEffectMixerGroup = true)
        {
            _audioSourceSound = audioSourceSound;
            _audioSourceSound.outputAudioMixerGroup = _audioMixer.FindMatchingGroups("Master")[isEffectMixerGroup ? 2 : 1];
        }

        public void ControlVolume(VolumType volumType, float _volume)
        {
            _volume = Mathf.Clamp(_volume, -100.0f, 0.0f);
            Debug.Log(_volume);
            switch (volumType)
            {
                case VolumType.MusicVolume:
                    _audioMixer.SetFloat("MusicVolume", _volume);
                    break;
                case VolumType.EffectVolume:
                    _audioMixer.SetFloat("EffectVolume", _volume);
                    break;
                case VolumType.MasterVolume:
                    _audioMixer.SetFloat("MasterVolume", _volume);
                    break;
                default:
                    break;
            }


        }
        /// <summary>
        /// 默認(rèn)聲音播放器
        /// </summary>
        /// <param name="clip"></param>
        public void PlaySound(AudioClip clip, bool loop = false)
        {
            if (_audioSourceSound == null)
            {
                throw new NotImplementedException("沒(méi)有找到AudioSource");
            }

            _audioSourceSound.clip = clip;
            _audioSourceSound.loop = loop;
            _audioSourceSound.Play();
        }

        /// <summary>
        /// 指定聲音播放器
        /// </summary>
        /// <param name="source"></param>
        /// <param name="clip"></param>
        public void PlaySound(AudioSource source, AudioClip clip, bool loop = false, bool isEffectMixerGroup = true)
        {
            if (source == null)
            {
                throw new NotImplementedException("沒(méi)有找到AudioSource");
            }
            source.outputAudioMixerGroup = _audioMixer.FindMatchingGroups("Master")[isEffectMixerGroup ? 1 : 0];
            source.clip = clip;
            source.loop = loop;
            source.Play();
        }
        /// <summary>
        /// 停止播放
        /// </summary>
        /// <param name="source"></param>
        public void Stop(AudioSource source)
        {
            if (source == null)
            {
                throw new NotImplementedException("沒(méi)有找到AudioSource");
            }
            source.playOnAwake = false;
            source.loop = false;
            source.Stop();
        }

        public void Stop()
        {
            if (_audioSourceSound == null)
            {
                throw new NotImplementedException("沒(méi)有找到AudioSource");
            }
            _audioSourceSound.playOnAwake = false;
            _audioSourceSound.loop = false;
            _audioSourceSound.Stop();
        }
        public void PlaySoundLenth(AudioSource source, AudioClip clip, float time)
        {

            if (source == null)
            {
                throw new NotImplementedException("沒(méi)有找到AudioSource");
            }
            source.PlayOneShot(clip);
        }
    }
    public class SoundLoader
    {

        public static AudioClip SoundPointClick
        {
            get
            {
                return LoadClip(SoundType.Effect, "/Common/PointClick");
            }
        }
        public static AudioClip SoundBgMusic
        {
            get
            {
                return LoadClip(SoundType.Music, "/Common/SoundBgMusic");
            }
        }
        public static AudioMixer ExpmAudioMixer
        {
            get
            {
                return LoadAudioMixer("Sounds/AudioMixer/ExpmAudioMixer");
            }
        }
        private static AudioClip LoadClip(SoundType soundType, string pathName)
        {
            AudioClip aduioClip = Resources.Load<AudioClip>("Sounds/" + soundType.ToString() + pathName);
            if (aduioClip == null)
            {
                throw new NotImplementedException(pathName + "聲音片段未找到权谁,請(qǐng)確定路徑");
            }
            return aduioClip;
        }

        private static AudioMixer LoadAudioMixer(string pathName)
        {
            AudioMixer audioMixer = Resources.Load<AudioMixer>(pathName);
            if (audioMixer == null)
            {
                throw new NotImplementedException("聲音混合器未找到剩檀,請(qǐng)確定路徑");
            }
            return audioMixer;
        }

    }
    public class GameService
    {
        public GameService(string dad)
        {

        }
        public GameService()
        {

        }
        public void Open()
        {
            Debug.Log("dsadad");
        }
    }

}


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市旺芽,隨后出現(xiàn)的幾起案子沪猴,更是在濱河造成了極大的恐慌,老刑警劉巖采章,帶你破解...
    沈念sama閱讀 222,000評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件运嗜,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡悯舟,警方通過(guò)查閱死者的電腦和手機(jī)担租,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,745評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)抵怎,“玉大人奋救,你說(shuō)我怎么就攤上這事”愎螅” “怎么了菠镇?”我有些...
    開封第一講書人閱讀 168,561評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)承璃。 經(jīng)常有香客問(wèn)我利耍,道長(zhǎng),這世上最難降的妖魔是什么盔粹? 我笑而不...
    開封第一講書人閱讀 59,782評(píng)論 1 298
  • 正文 為了忘掉前任隘梨,我火速辦了婚禮,結(jié)果婚禮上舷嗡,老公的妹妹穿的比我還像新娘轴猎。我一直安慰自己,他們只是感情好进萄,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,798評(píng)論 6 397
  • 文/花漫 我一把揭開白布捻脖。 她就那樣靜靜地躺著锐峭,像睡著了一般。 火紅的嫁衣襯著肌膚如雪可婶。 梳的紋絲不亂的頭發(fā)上沿癞,一...
    開封第一講書人閱讀 52,394評(píng)論 1 310
  • 那天,我揣著相機(jī)與錄音矛渴,去河邊找鬼椎扬。 笑死,一個(gè)胖子當(dāng)著我的面吹牛具温,可吹牛的內(nèi)容都是我干的蚕涤。 我是一名探鬼主播,決...
    沈念sama閱讀 40,952評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼铣猩,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼揖铜!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起达皿,我...
    開封第一講書人閱讀 39,852評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤蛮位,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后鳞绕,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,409評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡尸曼,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,483評(píng)論 3 341
  • 正文 我和宋清朗相戀三年们何,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片控轿。...
    茶點(diǎn)故事閱讀 40,615評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡冤竹,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出茬射,到底是詐尸還是另有隱情鹦蠕,我是刑警寧澤,帶...
    沈念sama閱讀 36,303評(píng)論 5 350
  • 正文 年R本政府宣布在抛,位于F島的核電站钟病,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏刚梭。R本人自食惡果不足惜肠阱,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,979評(píng)論 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望朴读。 院中可真熱鬧屹徘,春花似錦、人聲如沸衅金。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,470評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至鉴吹,卻和暖如春姨伟,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背拙寡。 一陣腳步聲響...
    開封第一講書人閱讀 33,571評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工授滓, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人肆糕。 一個(gè)月前我還...
    沈念sama閱讀 49,041評(píng)論 3 377
  • 正文 我出身青樓般堆,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親诚啃。 傳聞我的和親對(duì)象是個(gè)殘疾皇子淮摔,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,630評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容

  • 傳送門 Unity官方實(shí)例教程 Space Shooter(一)Unity官方實(shí)例教程 Space Shooter...
    Zui閱讀 31,376評(píng)論 66 53
  • 昨天晚上爸爸出去喝酒和橙,今天早上發(fā)現(xiàn)“斷片”了,回到家之后的時(shí)間消失不見了造垛,因?yàn)槲蚁氩黄饋?lái)了魔招。 半夜十二點(diǎn),媽媽和姐...
    雷登張閱讀 165評(píng)論 0 1
  • 第一天的學(xué)習(xí)五辽,我如臨大敵办斑,1061個(gè)單詞組成的文章,我看了3遍才能猜測(cè)出一部分意思杆逗,然后看了解釋解析乡翅,才敢去做題目...
    oilyne閱讀 351評(píng)論 0 1
  • 對(duì)于PM而言蠕蚜,邏輯是非常重要的,邏輯體現(xiàn)在平時(shí)的對(duì)話悔橄、思考和寫作中靶累。讀了李叫獸的 【李叫獸】如何寫微信公眾號(hào)文章:...
    ArkGU閱讀 630評(píng)論 0 1
  • 之前寫過(guò)一篇關(guān)于Hexo--在另一臺(tái)電腦上寫博客的博文,當(dāng)時(shí)對(duì)hexo并不是很熟悉癣疟,稀里糊涂搞好后尺铣,便匆匆記錄了下...
    瀧一一閱讀 4,498評(píng)論 0 1