Unity3D如何添加背景音乐(BGM)
发表于2017-08-13
游戏里面的背景音乐(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愉快地玩耍。