Unity3d基础教程9-音频组件(Audio)

发表于2016-05-24
评论1 5.6k浏览
  游戏音频在游戏开发中占有重要地位,可以提升游戏的真实效果。在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;
  讲代码拖放到我们的摄像上。然后将我们添加了声音源文件的游戏物体拖放到music中


  运行游戏


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

0个评论