- 最后登录
- 2015-1-26
- 注册时间
- 2012-4-17
- 阅读权限
- 20
- 积分
- 358
- 纳金币
- 300
- 精华
- 0
|
游戏音频在游戏开发中占有重要地位,可以提升游戏的真实效果。在unity中音频组件存放在菜单栏的Component->Audio中。如图,Audio Listener:音频***。Audio Source:音频源。Audio Reverb Zones:混响区。Audio Low Pass Filter (PRO only) :音频低通滤波器Audio High Pass Filter (PRO only) :音频高通滤波器Audio Echo Filter (PRO only) :音频回声滤波器Audio Distortion Filter (PRO only) :音频失真滤波器Audio Reverb Filter (PRO only) :音频混响滤波器Audio Ch***s Filter (PRO only) :音频合声滤波器在unity3d中音频是作为一个游戏组件出现的,也就是说一个音频源必须要依附在一个游戏物体上面。如果我们想在一个游戏场景中听到声音。场景中必须添加了一个带有Audio Listener(音频***)和一个带有Audio Source(音频源)的游戏物体。音频源是用来发出声音的,音频***是用来接收声音的。首先我们要在场景中添加一个Audio Listener(音频***),一般我们都会把这个***添加到我们的主相机上。打开unity3d,新建一个游戏项目。选择项目自带的Main Camera。在Inspector视图中,我们发现项目已经为我们添加好了一个***。好吧下面我们就来添加一个音频源。首先创建一个游戏物体GameObject->CreatEmpty。这是一个空物体。将物体命名为Audio1。选中Audio1点击菜单栏的Component->Audio->AudioSource如图:在Inspector视图中出现如图所示的AudioSource属性面板。Audio Clip :音频剪辑,将被播放的声音剪辑文件。Mute :静音。Bypass Effects :用来打开和关闭所有的特效。Play On Awake:是否在场景启动时开始播放声音。Loop :是否循环播放。Priority:优先权,确定场景所有并存的音频源之间的优先权。(Volume 音量,声音从距离音频***(Audio Listener)1个世界单位(1米)处有多响?Pitch 音调,改变音调(Pitch)值,可以减速/加速音频剪辑的播放。1是正常播放速度。3D Sound Settings:3D声音设置 Doppler Level:多普勒级别,决定了多少多普勒效应将被应用到这个音频信号源(如果设置为0,就是无效果)。Volume Rolloff:衰减模式。 Logarithmic Rolloff:对数衰减,当你接近的音频源,声音响亮,但是当你远离对象,声音下降显着快。Linear Rolloff:线性衰减,越是远离音频源的,你可以听到的声音越小。Custom Rolloff:自定义衰减,根据你设置的衰减图形,来自音频源的声音行为。 Min Distance:最小距离,在最小距离(MinDistance)之内,声音会保持最响亮。 在最小距离(MinDistance)之外,声音就会开始衰减。Pan Level:平衡调整级别,设置多少,3D引擎在音频源上有效果。Spread :扩散,设置3D立体声或者多声道音响在扬声器空间的传播角度。Max Distance:最大距离,声音停止衰减距离。超过这一点,它将在距离侦听器最大距离(MaxDistance)单位,保持音量,并不会作任何衰减。2D Sound Settings:2D声音设置Pan 2D:2D平衡调整,设置多少,引擎在音频源上有效果。了解了这些参数之后,我们就可以给我们的游戏场景添加第一个声音了。首先我们将一个声音源文件导入到游戏工程中。(unity3d支持的音频文件格式:.aif, .wav, .mp3, 和 .ogg)。如图。声音文件被unity识别之后将会在文件名称前面有一个喇叭的标志。选择我们的声音文件。在Inspector视图中出现一下属性:Audio Format :音频格式3D Sound :三维声音,如果启用,音乐将在3D空间中播放。Force to mono :强制单声道,如果启用,该音频剪辑将向下混合到单通道声音。Load Type: 加载类型。运行时Unity加载音频的方法。Decompress on load:加载时解压缩,加载后解压缩声音。使用于较小的压缩声音,以避免运行时解压缩的性能开销。Compressed in memory:在内存中压缩,保持声音在内存中是压缩的并在播放时解压缩。这有轻微的性能开销(尤其是OGG / Vorbis格式的压缩文件),因此使用这个为大文件。Stream from disc:从磁盘流,直接从磁盘流音频数据。这只使用了原始声音占内存大小的很小一部分。使用这个用于很长的音乐。Hardware Decoding:硬件解码,(仅iOS)用于iOS设备压缩的音频。使用苹果的硬件解码来减少CPU的密集解压缩。Gapless looping:无缝循环,(仅Android/iOS)当压缩一个完美的循环音频源文件(在一个非压缩的PCM格式)保持循环时,使用这个。Compression:压缩。根据项目的需求选择合适的参数进行调节,调节完成后,就可以将调节好的音频剪辑添加到场景中了。方法如下,选择我们添加了音频源的游戏物体,然后将调节好的音频剪辑拖放到Audio Clip选项中,或者点击Audio Clip选项后的选择按钮选择相应的音频剪辑。方法1:方法2:音频剪辑添加完成,勾选Play On Awake然后运行游戏。声音已经可以正常播放了。下面我们来看下怎么动态控制一段声音的播放和停止呢,首相我们要把Play On Awake的勾选去掉。查看一下unity的脚本帮助文档AudioSource.Play控制播放。AudioSource.Stop 控制停止。AudioSource.Pause 暂停。这样就简单了。我们只需要制作三个按钮,分别来控制着三个函数即可。新建一个JS脚本命名为OneAudio。代开脚本,输入一下代码。//定义一个音乐文件var music:AudioSource;function OnGUI(){ //播放 if(GUI.Button(new Rect(10,10,100,50),"播放音乐")) { //如果音乐没有播放 if(!music.isPlaying) { //播放音乐 music.Play(); } } //停止播放按钮 if(GUI.Button(new Rect(10,60,100,50),"停止音乐")) { //如果正在播放音乐 if(music.isPlaying) { //音乐停止播放 music.Stop(); } } //暂停播放按钮 if(GUI.Button(new Rect(10,110,100,50),"暂停音乐")) { //如果正在播放音乐 if(music.isPlaying) { //暂停音乐 music.Pause(); } }}讲代码拖放到我们的摄像上。然后将我们添加了声音源文件的游戏物体拖放到music中运行游戏 |
|