Unity3D如何添加背景音乐(BGM)

发表于2017-08-13
评论0 818浏览

想免费获取内部独家PPT资料库?观看行业大牛直播?点击加入腾讯游戏学院游戏程序行业精英群

711501594
游戏里面的背景音乐(Back Ground Music)一直是玩家谈论的话题,从太阁、大航海等暗耻的游戏,到某三剑,总有几首经典的背景音乐触动你的耳朵……BGM这个词,就算文化水平不高的我,经常看AB站的我都知道什么意思了,总有几个自带BGM的角色……所以嘛,背景音乐虽然不是游戏的核心,但绝对是重要的组成部分。在Unity3D里面,整BGM,其实难度也就和Helloworld差不多。为游戏添加BGM只需要几步和简单的脚本,具体如下:

先用UGUI布置如下图的场景。其实这根本就不是重点!在Canvas里面2个Button,Text和Slider各1。

同时在Assets中新建文件夹叫Resources,只能叫这个名字,便于发布的时候unity3d将这个文件夹的内容自动打包,以免出现一系列不好的问题。

然后在Resources导入音乐,如果你现在的机器上没有mp3,可以像我这样拿首Win7自带的示例音乐来凑个数。

当然,如果你是些什么某茄花园版,Ghost装机版,Win7精简版的话……还是自己拷首单曲循环来实验吧……

最后是重点中的重点,新建一个空物体GameObject。并先给它添加Audio Listener,再添加Audio Source两个组件Component,Audio Listener虽然看起来没什么调用,但是是必须的。同时,整个游戏场景这么多物体Object,只能有一个物体有Audio Listener组件。之后,在Audio Clip选择刚才导入的Kalimba.mp3。

然后编写如下的脚本BGM.cs赋予给这个空物体GameObject。
using UnityEngine;
using System.Collections;
public class BGM : MonoBehaviour
{
    public AudioSource audioSource;
    //开始、停止播放
    public void play_stop_music()
    {
        Debug.Log("s");
        if (!audioSource.isPlaying)
        {
            audioSource.Play();
        }
        else
        {
            audioSource.Stop();
        }
    }
    //暂停播放
    public void pause_music()
    {
        if (audioSource.isPlaying)
        {
            audioSource.Pause();
        }
    }
    //改变音量
    public void change_volume(float volume)
    {
        audioSource.volume = volume;
    }
}

如图所示,这个脚本开了个接口public AudioSource audioSource;,将无缝对接给刚才设置的组件,这里不懂的,可以参考《【Unity3D】同场景物体传值与Vector》。同时,各个函数将被赋予2个Button与Slider,这里不懂的,可以参考《【Unity3D】场景切换、UGUI组件事件、开始游戏与关闭游戏》。

编译、发布,你就可以与BGM愉快地玩耍。

原文链接

著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

如社区发表内容存在侵权行为,您可以点击这里查看侵权投诉指引

游戏学院公众号二维码
腾讯游戏学院
微信公众号

提供更专业的游戏知识学习平台