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

发表于2016-09-22
评论0 855浏览
  第二种试用与比较短的游戏音乐,如开枪,打怪 时“砰砰”一瞬间播放的游戏音效。今天MOMO将用下面的例子带盆友们去剖析Unity3D游戏音乐与音效的播放。

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

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


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


  看了上面的文章 热爱游戏创作的你是不是已经开始热血沸腾了呢?是不是迫不及待的想加入游戏团队成为里面的一员呢?
  福利来啦~赶快加入腾讯GAD交流群,人满封群!每天分享游戏开发内部干货、教学视频、福利活动、和有相同梦想的人在一起,更有腾讯游戏专家手把手教你做游戏!


腾讯GAD游戏程序交流群:484290331

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

0个评论