Unity3D研究院之详解游戏开发音频的播放

摘要:
今天MOMO将用下面的例子带盆友们去剖析Unity3D游戏音乐与音效的播放。创建一个脚本我命名为audio.cs用来音乐的播放。这里强调一下AudioListenr,它音频监听器,用来监听音乐文件的播放。buildandrun运行我们这个游戏Demo,一切功能完美实现,哇咔咔~最后欢迎各位盆友可以和MOMO一起讨论Unity3D游戏开发,大家一起学习一起进步,哇咔咔~~~附上Unity3D工程的下载地址,Xcode项目我就不上传了,须要的自己导出。

游戏音频的播放在任何游戏中都占据非常重要的地位,音频的播放还可以分为两种,一种为游戏音乐,另一种为游戏音效。前者适用于较长的音乐,如游戏背景音乐。第二种试用与比较短的游戏音乐,如开枪,打怪 时“砰砰”一瞬间播放的游戏音效。今天MOMO将用下面的例子带盆友们去剖析Unity3D游戏音乐与音效的播放。

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

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

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

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

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

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

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

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

Component -> Audio – > Audio Source。

Unity3D研究院之详解游戏开发音频的播放(十五) - 雨松MOMO程序研究院 - 1

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

Unity3D研究院之详解游戏开发音频的播放(十五) - 雨松MOMO程序研究院 - 2

我们发现 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;
publicclassaudio:MonoBehaviour{
//音乐文件
publicAudioSource music;
//音量
publicfloatmusicVolume;
voidStart(){
//设置默认音量
musicVolume=0.5F;
}
voidOnGUI(){
//播放音乐按钮
if(GUI.Button(newRect(10,10,100,50),"Play music")){
//没有播放中
if(!music.isPlaying){
//播放音乐
music.Play();
}
}
//关闭音乐按钮
if(GUI.Button(newRect(10,60,100,50),"Stop music")){
if(music.isPlaying){
//关闭音乐
music.Stop();
}
}
//暂停音乐
if(GUI.Button(newRect(10,110,100,50),"Pause music")){
if(music.isPlaying){
//暂停音乐
//这里说一下音乐暂停以后
//点击播放音乐为继续播放
//而停止以后在点击播放音乐
//则为从新播放
//这就是暂停与停止的区别
music.Pause();
}
}
//创建一个横向滑动条用于动态修改音乐音量
//第一个参数 滑动条范围
//第二个参数 初始滑块位置
//第三个参数 起点
//第四个参数 终点
musicVolume=GUI.HorizontalSlider(newRect(160,10,100,50),musicVolume,0.0F,1.0F);
//将音量的百分比打印出来
GUI.Label(newRect(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 ,它音频监听器,用来监听音乐文件的播放。这是一个重要的属性,一定要勾选,只有勾选后才可以进行音乐的播放。

Unity3D研究院之详解游戏开发音频的播放(十五) - 雨松MOMO程序研究院 - 3

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

Unity3D研究院之详解游戏开发音频的播放(十五) - 雨松MOMO程序研究院 - 4

最后欢迎各位盆友可以和MOMO一起讨论Unity3D游戏开发,大家一起学习一起进步,哇咔咔~~~ 附上Unity3D工程的下载地址,Xcode项目我就不上传了,须要的自己导出。今天心里有点不高兴! 5555555555。就这样晚安~

下载地址:http://vdisk.weibo.com/s/abxs8

补充:

最近有朋友问我如何切换场景Unity音频不关闭,其实做法非常简单。如下图所示,你的声音组件会放在声音对象中,因为切换场景的时候声音对象会自动销毁,所以声音就会关闭。所以如果你的声音组件不被销毁掉,哪么你的声音就会连续播放了。

Unity3D研究院之详解游戏开发音频的播放(十五) - 雨松MOMO程序研究院 - 5

代码就是使用DontDestroyOnLoad()方法就可以切换场景不施放对象了。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
using UnityEngine;
using System.Collections;
publicclassTest:MonoBehaviour
{
publicGameObject audio;
voidStart()
{
DontDestroyOnLoad(audio);
}
voidOnGUI()
{
if(GUILayout.Button("NEXT"))
{
Application.LoadLevel("Scene1");
}
}
}

免责声明:文章转载自《Unity3D研究院之详解游戏开发音频的播放》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Allegro使用技巧H5页面适配所有iPhone和安卓机型的六个技巧下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

ffmpeg 使用 gdb 调试相关技巧

本文说明了,在ffmpeg二次开发或调用库的过程,如何借助于ffmpeg源码进行调试。 注:ffmpeg版本是4.0。 1. 编写代码 编写将pcm数据转换为mp2的代码 pcm_to_mp2.c #include <libavformat/avformat.h> #include <libavcodec/avcodec.h> #i...

(转载)游戏开发完整学习路线(各个版本都有)

游戏开发完整学习路线(各个版本都有)   在软件开发中,游戏开发这个方向看起来目标很明确,但其实是个领域很广的方向,入门的时候如果得不到指点一二,很容易误入歧途,相反,如果走这条路之前能得到前人的一些指路,是可以事半功倍的。 一 平台与编程语言选择 首先,游戏开发的平台就有很多类型:  个人主机平台:Windows、Linux、Mac OC; 移动平台...

UNITY3D编辑器插件编写教程

如何让编辑器运行你的代码如何让编辑器运行你的代码 Unity3D 可以通过事件触发来执行你的编辑器代码,但是我们需要一些编译器参数来告知编译器何时需要触发该段代码。 [MenuItem(XXX)]声明在一个函数上方,告知编译器给Unity3D编辑器添加一个菜单项,并且当点击该菜单项的时候调用该函数。触发函数里 可以编写任何合法的代码,可以是一个资源批处理程...

音乐播放

1.初始化mediaplay MediaPlay m = new MediaPlay(); 2.加载文件路径 m.setDataSource(“路径”); 3.准备播放 m.prepare(); 4.开始播放 m.stare(); 注意 如果文件在sd卡中需要加权限 如果手机为6.0版本以上 在onCreate()添加运行权限...

HTML5--新增元素音频/视频(6)

前言:   这节课主要学习HTML5中新增的audio和video元素。   1.audio元素     作用:为html提供了播放音频文件的标准。     属性:       controls:         controls属性为audio控件提供了播放、暂停、音量调节等功能。       autoplay:         设置音频自动播放,音频在...

【转】推荐给大家的7本游戏开发书

1、游戏设计的 100 个原理 世界知名的游戏设计界权威的见解和阐释,深刻揭示原理对游戏设计的启发和价值。 本书首次将游戏设计师的想法中最好的一部分变成一个工具包。作者在书中整合了众多游戏设计秘笈,概括并阐释了 100 条重要的方法、原理和设计哲学。这些原理是从游戏设计的各个流派中收集而来的,并且从创新、创作、平衡和解决问题这 4 个角度来组织并加以...