为什么要建设双端网站,wordpress注册邮箱配置,现在中美关系最新消息,网络美工是做什么的前言在游戏中#xff0c;通常我们需要控制整个游戏的主音量#xff08;全局音量#xff09;#xff0c;并且单独控制背景音乐和其他音效#xff08;攻击、爆炸之类#xff09;的音量#xff0c;这时我们可以用Audio Mixer来解决。 如果文章中有哪些地方写的不对#xf… 前言在游戏中通常我们需要控制整个游戏的主音量全局音量并且单独控制背景音乐和其他音效攻击、爆炸之类的音量这时我们可以用Audio Mixer来解决。 如果文章中有哪些地方写的不对 欢迎指出。 提醒在这篇教程中我将重新创建一个简单的工程来给大家演示并且我当前使用的Unity版本为2018.1.1f1。 本文并非零基础教程但是写了有点太详细且有大约30张图所以又臭又长... 工程中用到3个音频文件作为测试分别为背景音乐、玩家攻击和敌人爆炸。 正文1、新建工程导入资源将3个音频文件放在Audio目录下 2、创建音量调节面板UI 创建了3个滑动条分别控制主音量、音乐和音效并且将滑动条的默认值设为1 3、创建声音播放源(1)背景音乐 创建一个空物体(GameObject)来作为背景音乐的载体改名为Background Music添加一个Audio Source组件要使用Audio Mixer控制音量必须要用Audio Source来播放音频将背景音乐音频文件拖到AudioClip中勾选Loop让背景音乐循环播放 (2)玩家攻击音效 创建一个空物体改名为Player添加Audio Source组件将玩家攻击音效拖入AudioClip取消勾选Play On Awake 并且添加了一个名为Player的脚本(脚本放在Scripts文件夹下)来模拟玩家攻击播放攻击音效代码如下 using System.Collections;using System.Collections.Generic;using UnityEngine;public class Player : MonoBehaviour{ private AudioSource audioSource; void Start () { audioSource GetComponentAudioSource(); } void Update () { if (Input.GetKeyDown(KeyCode.Q)) { audioSource.Play(); // 按下Q键播放玩家攻击音效 } }}(3)敌人爆炸音效 和设置Player步骤相同只不过物体和脚本名变成了Enemy播放按键设为E拖入敌人爆炸音效取消勾选Play On Awake 3、创建Audio Mixer1. 在Audio文件夹下创建Mixers文件夹右键点击Mixers文件夹 -- Creat -- Audio Mixer 2. 创建后改名为MasterMixer我们用这个Audio Mixer来控制全局音量双击打开我们创建的MasterMixer将打开的窗口拉出来方便我们查看 3. 接下来我们单击选择Groups下的Master再点击Groups右边的 添加成员我们需要创建两个成员分别命名为Music和SoundEffect 4. 我们会发现MasterMixer下多出了几个东西 5. 我们要用Music成员来控制背景音乐所以我们把Music成员拖到Background Music物体的Audio Source组件下的Output中 6. 然后我们点击Mixers右边的 再创建一个名为SoundEffectMixer的Audio Mixer我们用这个Mixer而来管理玩家攻击和敌人爆炸音效并且将这个Mixer也放到Mixers文件夹下方便管理 7. 然后我们选择刚创建的SoundEffectMixer单击选择Master点击Groups右边的 创建两个成员分别为PlayerAttack和EnemyExplosion分别代表玩家攻击和敌人爆炸音效 8. 我们再次单击左键选择SoundEffectMixer拖到上面的MasterMixer然后会弹出一个窗口选择SoundEffect 9. 将PlayerAttack成员拖到Player物体的Audio Source组件下的Output中 将EnemyExplosion成员拖到Enemy物体的Audio Source组件下的Output中 10. 我们现在看一下Mixer和成员间的层级关系 现在我们可以通过MasterMixer下的Master来控制全局主音量通过Music来控制背景音乐音量通过SoundEffect来控制玩家攻击和敌人爆炸音效。 4、暴露参数我们需要先将Master、Music和SoundEffect的参数暴露Expose出来这样我们才可以通过代码去控制音量 1. 首先暴露出Master的参数 2. 然后点击Exposed Parameters选择我们刚暴露出来的Master的参数按下F2更改名字为MasterVolume 3. 对Music和SoundEffect进行同样的操作1,2步操作然后我们就有3个暴露出来的参数 5、控制音量现在我们有了参数就可以让我们控制音量了那么接下来就进行音量的控制 1. 在Menu Canvas也可以新建一个空物体随意下新建一个脚本名为AudioManager代码如下 using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.Audio;public class AudioManager : MonoBehaviour{ public AudioMixer audioMixer; // 进行控制的Mixer变量 public void SetMasterVolume(float volume) // 控制主音量的函数 { audioMixer.SetFloat(MasterVolume, volume); // MasterVolume为我们暴露出来的Master的参数 } public void SetMusicVolume(float volume) // 控制背景音乐音量的函数 { audioMixer.SetFloat(MusicVolume, volume); // MusicVolume为我们暴露出来的Music的参数 } public void SetSoundEffectVolume(float volume) // 控制音效音量的函数 { audioMixer.SetFloat(SoundEffectVolume, volume); // SoundEffectVolume为我们暴露出来的SoundEffect的参数 }}2. 将MasterMixer拖到AudioManager脚本上 3. 然后我们将3个滑动条分别绑定这3个函数 4. 将3个滑动条都绑定号函数后我们就可以通过滑动条来分别控制Master、Music和SoundEffect的值了 5. 但是现在滑动条只能让参数的值在1和0间变化声音大小没有变化所以我们需要修改滑动条的最小值和最大值来解决 我们先要测试下声音的大小区间点击Edit in Play Mode拖动滑动块找出声音最小和最大的值 6. 然后我们修改滑动条的最小值和最大值 7. 全部滑动条都调整好了之后我们就可以正常调节音量的大小了 (1)主音量控制全局音量包括了背景音乐和音效 (2)音乐控制背景音乐 (3)音效控制玩家攻击和敌人爆炸音效 4、结束语完结撒花累死我了...————————————————原文链接https://blog.csdn.net/iFasWind/article/details/81182579 转载于:https://www.cnblogs.com/xiaoahui/p/11553769.html