上节我们主要说了模型的导入和通过鼠标控制模型移动,但是在运行过程中会发现没有背景音乐,总感觉少了点什么,所以这次我们一起学习下背景音乐和游戏音效的播放。
目前Unity3D游戏引擎一共支持4个音乐格式的文件
.AIFF 适用于较短的音乐文件可用作游戏打斗音效
.WAV 适用于较短的音乐文件可用作游戏打斗音效
.MP3 适用于较长的音乐文件可用作游戏背景音乐
.OGG 适用于较长的音乐文件可用作游戏背景音乐
那我们首先在之前在的场景中创建两个AudioSource属性:
一个命名为Bgm,作为背景音乐另外一个命名为Audio表示游戏音效。
一般背景音乐文件较大时间较长,且会持续循环播放,而游戏音效一般短,文件小,不会循环播放。
导入自己的音乐文件
这里我们先将游戏背景音乐Bgm,拖入到右侧Audio Clip处,下面我们讲解一下Audio Source里的设置参数:
AudioClip :声音片段,还可以在代码中去动态的截取音乐文件。
Mute : 是否静音
Bypass Effects: 是否打开音频特效
Play On Awake: 开机自动播放
Loop:循环播放
Volume: 声音大小,取值范围0.0 到 1.0
Pitch:播放速度,取值范围在 -3 到 3 之间 设置1 为正常播放,小于1 为减慢播放 大于1为加速播放。
创建一个脚本我命名为AudioManager.cs 用来音乐的播放,挂到僵尸的身上。本次主要是为游戏场景添加背景音乐和对僵尸的移动添加脚步声。
首先命名需要的变量:
public AudioSource Bgm; //背景音乐 public AudioSource Audio; //游戏音乐 public AudioClip[] GameMusic; //存放所有的音效文件 public float BgmVolum; //背景音乐音量大小 public float AudioVolmue; //音效音量大小
这里主要是先把背景音乐和游戏音效的AudioSource拖到指定的地方:
然后写第一个方法:播放音乐
/// <summary>
/// 播放游戏音效
/// </summary>
public void PlayGameAudio(int index)
{
StopGameAudio(); //先把当前播放的音效关闭
Audio.loop = true; //这里由于走路是持续性的 要把播放格式设为循环播放
Audio.clip = GameMusic[index]; //将相应的音效文件放置到clip处
Audio.Play(); //开始播放音效
}
第二个方法:关闭指定的音乐
/// <summary>
/// 停止播放游戏音效
/// </summary>
public void StopGameAudio()
{
if (Audio.isPlaying) //如果这个音乐处于播放状态
{
Audio.Stop(); //关闭音乐
}
}
上面主要是写了音乐的关闭和播放,当然也有对应的暂停:
Audio.Pause(); //暂停音乐
下面我们在处理如何设置音量:
/// <summary>
/// 设置音量大小
/// </summary>
/// <param name="type">音乐类型</param>
/// <param name="volume">音量大小</param>
public void SettingMusicVolume(MusicType type, float volume)
{
switch (type)
{
case MusicType.Bgm:
Bgm.volume = volume;
break;
case MusicType.Music:
Audio.volume = volume;
break;
}
}
上面是如何调整音乐的音量大小,但是我们发现还没有界面去可以实时调节音量大小啊,那接下来我们来绘制一个滑动条来控制音量大小:
void OnGUI()
{
BgmVolum = GUI.HorizontalSlider(new Rect(160, 10, 100, 50), BgmVolum, 0.0F, 1.0F);
GUI.Label(new Rect(100, 10, 60, 50), "背景音乐");
if (Bgm.isPlaying)
{
SettingMusicVolume(MusicType.Bgm, BgmVolum);
}
GUI.Label(new Rect(100, 80, 60, 50), "游戏音效");
AudioVolmue = GUI.HorizontalSlider(new Rect(160, 80, 100, 50), AudioVolmue, 0.0F, 1.0F);
if (Audio.isPlaying)
{
SettingMusicVolume(MusicType.Music, AudioVolmue);
}
#region 我的公众号
GUI.DrawTexture(new Rect(Screen.width-100,0, 100, 100), Wx);
#endregion
}
调节的界面效果如下:
这个时候直接点击运行按钮,就可以实现播放背景音乐和走路的游戏音效。
如有错误,欢迎大家指正!
项目链接地址:http://pan.baidu.com/s/1c1IHRRq 密码:0im4
如有疑问或者想学习更多请关注微信公众号“unity研究院”,或者添加QQ群:879354767,关注有福利哦!