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

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

unity添加背景音乐代码 unity如何添加背景音乐_unity添加背景音乐代码

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

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

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

unity添加背景音乐代码 unity如何添加背景音乐_AudioSource_02

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

unity添加背景音乐代码 unity如何添加背景音乐_BGM_03

然后编写如下的脚本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组件事件、开始游戏与关闭游戏》

unity添加背景音乐代码 unity如何添加背景音乐_音乐_04

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