Unity3D游戏场景之播放音频文件

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yu1368072332/article/details/78461637

上节我们主要说了模型的导入和通过鼠标控制模型移动,但是在运行过程中会发现没有背景音乐,总感觉少了点什么,所以这次我们一起学习下背景音乐和游戏音效的播放。

目前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,关注有福利哦!

猜你喜欢

转载自blog.csdn.net/yu1368072332/article/details/78461637