Unity3D 游戏引擎之详解游戏开发音频的播放

发表于2017-08-03
评论0 2.2k浏览

任何游戏中游戏音频的播放都非常重要,其中音频的播放分两种类型,一种是游戏音乐,另一种是游戏音效。前者适用于较长的音乐,如游戏背景音乐。第二种适用与比较短的游戏音乐,如射击 时“砰砰”一瞬间播放的游戏音效。下面就通过一个具体的实例给大家解析Unity3d游戏音乐与音效的播放。

 

Unity3D游戏引擎一共支持4个音乐格式的文件

1.AIFF  适用于较短的音乐文件可用作游戏打斗音效

2.WAV  适用于较短的音乐文件可用作游戏打斗音效

3.MP3  适用于较长的音乐文件可用作游戏背景音乐

4.OGG  适用于较长的音乐文件可用作游戏背景音乐

      

在场景中创建一个空的游戏对象。

GameObject -> CreateEmpty  创建成功后我命名为audio。

给audio添加一个AudioSource属性,这个属性非常的重要,Unity播放音乐主要就是要靠这个东西。


Component -> Audio - > Audio Source。




找一个音乐文件,我这里使用了一个.mp3音乐文件,我命名为0.mp3 如下图所示将它拖动到右侧Audio Clip处。





我们发现 Audio Source 有很多设置的属性,那么MOMO将一些比较重要的属性诺列出来。


AudioClip :声音片段,还可以在代码中去动态的截取音乐文件。

Mute : 是否静音

Bypass Effects: 是否打开音频特效

Play On Awake: 开机自动播放

Loop:循环播放

Volume: 声音大小,取值范围0.0 到 1.0

Pitch:播放速度,取值范围在 -3 到 3 之间 设置1 为正常播放,小于1 为减慢播放 大于1为加速播放。



创建一个脚本我命名为audio.cs 用来音乐的播放。本章将实现3个按钮 点击实现 播放音乐、 停止音乐、 暂停音乐 ,与一个横向拖动条通过手指的拖动实现动态修改音乐声音。


audio.cs 

[csharp] view plain copy
  1. using UnityEngine;  
  2. using System.Collections;  
  3.   
  4. public class audio : MonoBehaviour {  
  5.   
  6.     //音乐文件  
  7.     public AudioSource music;     
  8.     //音量  
  9.     public float musicVolume;     
  10.       
  11.     void Start() {  
  12.          //设置默认音量  
  13.          musicVolume = 0.5F;      
  14.     }  
  15.     void OnGUI() {  
  16.           
  17.         //播放音乐按钮  
  18.         if (GUI.Button(new Rect(10, 10, 100, 50), "Play music"))  {  
  19.               
  20.             //没有播放中  
  21.             if (!music.isPlaying){  
  22.                 //播放音乐  
  23.                 music.Play();  
  24.             }  
  25.               
  26.         }  
  27.           
  28.         //关闭音乐按钮  
  29.         if (GUI.Button(new Rect(10, 60, 100, 50), "Stop music"))  {  
  30.               
  31.             if (music.isPlaying){  
  32.                 //关闭音乐  
  33.                 music.Stop();  
  34.             }  
  35.         }  
  36.         //暂停音乐  
  37.         if (GUI.Button(new Rect(10, 110, 100, 50), "Pause music"))  {  
  38.             if (music.isPlaying){  
  39.                 //暂停音乐  
  40.                 //这里说一下音乐暂停以后  
  41.                 //点击播放音乐为继续播放  
  42.                 //而停止以后在点击播放音乐  
  43.                 //则为从新播放  
  44.                 //这就是暂停与停止的区别  
  45.                 music.Pause();  
  46.             }  
  47.         }  
  48.   
  49.         //创建一个横向滑动条用于动态修改音乐音量  
  50.         //第一个参数 滑动条范围  
  51.         //第二个参数 初始滑块位置  
  52.         //第三个参数 起点  
  53.         //第四个参数 终点  
  54.         musicVolume = GUI.HorizontalSlider (new Rect(160, 10, 100, 50), musicVolume, 0.0F, 1.0F);  
  55.       
  56.         //将音量的百分比打印出来  
  57.         GUI.Label(new Rect(160, 50, 300, 20), "Music Volueme is "   (int)(musicVolume * 100)   "%");  
  58.           
  59.         if (music.isPlaying){  
  60.             //音乐播放中设置音乐音量 取值范围 0.0F到 1.0   
  61.             music.volume = musicVolume;  
  62.         }  
  63.     }  
  64. }  


将audio.cs 绑定在摄像头上,将audio游戏对象拖动赋值给Music 这个AudioSource这个对象。这里强调一下AudioListenr ,它音频监听器,用来监听音乐文件的播放。这是一个重要的属性,一定要勾选,只有勾选后才可以进行音乐的播放。






build and run 运行我们这个游戏Demo,一切功能完美实现,哇咔咔~


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

标签:

0个评论