目录
Camera组件
AudioSource 组件
AudioListener 组件
ClearFlags:清除标记;决定屏幕中哪部分被清除。一般用于多台摄像机来描绘不同对象的情况,有一下三种模式。
- Skybox:天空盒。默认模式。在屏幕中的空白部分将显示当前摄像机的天空盒。如果当前摄像机没有设置天空盒,会默认用Background色。
- Solid Color:纯色。选择该模式屏幕上的空白部分将显示当前摄像机的background色。
- Depth only:仅深度。该模式用于游戏对象不希望被裁剪的情况。
- Don't Clear:不清除,该模式不清楚任何颜色和或深度缓存,但这样做每帧渲染的结果都会叠加在下一帧之上。一般与自定义的Shader(着色器)配合使用。
Background: 设置背景颜色。在镜头中的所有元素渲染完成且没有指定skybox的情况下,将设置的颜色应用到屏幕的空白处。
Culling Mask:剔除遮罩. 根据对象所指定的层来控制渲染的对象。
Projection:投射方式。
Perspective:透视。摄像机将用透视的方式来渲染游戏对象。
Field of view:透视模式的视野范围。用于控制摄像机的视角宽度以及纵向的角度尺寸。
Orthographic:正交。摄像机将用无透视的方式来渲染游戏对象。
Size:大小。用于控制正交模式摄像机的视口的大小。、Clipping Planes: 剪裁平面。摄像机开始渲染与停止渲染之间的范围。
- Near:近点。摄像机开始渲染的最近的点。
- Far:远点。摄像机开始渲染的最远的点。
Viewport Rect:标准视图矩形。用四个数值来控制摄像机的视图将绘制在屏幕的位置和大小,使用的是屏幕坐标系,数值在0~1之间。
- 参数X、 Y决定区域起点, W,H决定区域的宽高。屏幕坐标系是左下角为原点X = 0, Y = 0,屏幕最上方Y = 1,屏幕最右方X=1。
- 例如X = 0, Y=0, W = 1, H = 1 (默认)表示画面显示于整个屏幕。X-0.5, Y-0, W=0.5, H-1表示画面显示于右半屏幕
Depth:深度 ,用于控制多个摄像机的渲染优先级,优先级高的摄像机拍摄的画面将覆盖在优先级低的摄像机的画面上
Rendering Path:渲染路径。用于指定摄像机的渲染方法。
- Use Player Settings:使用Project Settings-->Player中的设置。
- Vertex Lit:顶点光照。摄像机将对所有的游戏对象作为顶点光照对象来渲染。
- Forward:快速渲染。摄像机将所有游戏对象将按每种材质一个通道的方式来渲染。
- Deferred Lighting:延迟光照。摄像机先对所有游戏对象进行一次无光照渲染,用屏幕空间大小的Buffer保存几何体的深度、法线以及高光强度,生成的Buffer将用于计算光照,同时生成一张新的光照信息Buffer。最后所有的游戏对象会被再次渲染,渲染时叠加光照信息Buffer的内容。此功能只有收费版才支持。
Target Texture: 目标纹理。用于将摄像机视图输出并渲染到屏幕。一般用于制作导航图或者画中画等效果。
HDR:高动态光照渲染,用于启用摄像机的高动态范围渲染功能,因为人眼对低范围的光照强度更为敏感,所以用高动态范围渲染能让场景变得更为真实,光照的变化不会显得太突兀。
Target Display:定义要渲染给哪个外部设备。1到8之间。
音频可以分为两大类:
- 一类为游戏背景音乐, 一类为游戏的音效。
- 前者适合于较长的音频处理, 如游戏背景音乐;
- 第二类则适合于较短的游戏音乐, 如枪击声、走路声等一瞬间即可播放完毕的音效。
Unity中目前支持的音频剪辑(Audio Clip)有4种音频格式。
- Mp3: 适合较长音频, 作为背景音乐。
- Ogg:适合较长音频, 作为背景音乐。
- Wav: 适合较短音频,作为环境音效。
- Aif: 适合较短音频, 作为环境音效。
- 注: 制作反应速度快的音效,适合使用不压缩的音频格式。
AudioClip 音频剪辑(或者音频片段)
- 我们导入到 Unity 中的所有声音文件,在Unity 引擎中的资源类型都是 AudioClip 类型。
- 点击进入官网了解该Audio Clip
AudioSource 组件:
- 音源是场景中在某个位置的发声装置,好像一个喇叭。它播放着音频片段 (Audio Clip)。
- 这就类似于 AudioSource 像我们电脑上的播放器 , AudioClip 像一首音乐。 可以用 AudioSource 来 播放 AudioClip。
- 点击进入官网了解 AudioSource 组件
如何给物体添加 AudioSource 组件:
- 有一个快速简单的方法, 就是你把一个 AudioClip 剪辑 拖到某个物体上, 该物体就会自动添加 AudioSource 组件,
音频剪辑(AudioClip) 的属性:
Force To Mono(强制单生道放音): 当启用此选项时, 多声道音频将在打包之前混合到单声道,此选项适合在移动设备上开启。
Normalize:启用此选项后,将在 “Force To Mono” 混音过程中对音频进行标准化。
Load In Background (后台加载): 当启用此选项时,音频的加载将在一个单独的线程上以延迟的方式加载, 而不会阻塞主线程。 此选项适合较大尺寸背景音乐的加载。
Ambisonic (高保真度立体响): 作为高保真立体音响保存
Load Type (音频加载的方式):
- Decompress On Load 选项是默认选项,在加载时解压缩,而不是在播放时解压缩。 使用此选项可用于较小的压缩声音, 以避免即时解压缩的性能开销, 所以不要使用此选项用于大文件。
- Compressed In Memory:在内存中压缩处理。 使声音在内存中压缩并在播放时解压缩, 此选项有轻微的性能开销。
- Streaming : 快速解码音频, 播放的时候直接从硬盘中取数据流, 适合大的背景音乐文件, 建议同时最多播放一到两个 Streaming 类型的音频
Preload Audio Data (预先加载的音频数据):如果启用,音频剪辑将在加载场景时被预加载。默认情况下,这是为了反映标准的Unity行为,当场景开始播放时,所有的 AudioClips 都已经加载完毕。如果没有设置此标志,则音频数据将在第一个AudioSource.Play() / AudioSource.PlayOneShot()上加载,或者可以通过AudioSource.LoadAudioData()加载,然后通过AudioSource.UnloadAudioData()再次卸载。
Compression Format (数据的压缩格式):
- PCM: 这个选项提供更高的质量, 以牺牲较大的文件大小, 最好是非常短的声音效果。
- Vorbis: 文件更小但稍低的音频质量, 这种格式最好适用于中等长度的音效和音乐。
- ADPCM: 适合需要大量演奏的声音, 如背景音乐、脚步声等。
Quality(品质): 当 Compression Format 设置为Vobis时, 可以设置1-100的品质。
Sample Rate Setting (采样率设置):
- Preserve Sample Rate: 保持采样率未修改(默认值)。
- Optimize Sample Rate: 该设置根据采样的最高频率自动优化采样率。
- Override Sample Rate: 允许手动设置采样率。
AudioSource 组件:
- Audio Clip (音频剪辑):指向即将播放的音频片段(Audio Clip)。可以通过手动或脚本的方式赋值。
- Output (音源输出): 音频剪辑可以输出到音频监听器(AudioListener)或者(AudioMixer)。当设置为空时,即代表输出到AudioListener,而设置到AudioMixer时需要指定具体的AudioMixer
- Mute (是否静音): 即音源在播放时,但是被静音。与关闭音源的区别时,当恢复时,播放的进度不同。{对于游戏中音效的暂停最好使用这项,它不会卸载声音数据,可以做到及时播放,音效一般比较多、占用内存小,使用静音可以让画面快速响应,且可以立刻恢复当前音效,暂停音乐可以使用 AudioSource 的Pause、Stop或者GameObject的enable,一般不需要及时响应,此时可以使用Stop,它会卸载音频数据节省内存。当然如果内存富余也可以使用其它方式,注意Mute跟其它方式的区别:Mute的音源在继续播放着,只是听不到而已,Pause是播放暂停,而Stop是完全停止,恢复时将从头播放。}
- BypassEffects(忽略效果):应用到音频源的快速“直通”过滤效果, 用来快速打开或关闭所有特效。
- Bypass Listener Effects( 忽略监听效果):用来快速打开或者关闭监听器特效。
- Bypass Reverb Zones (忽略混响器):用来快速打开或者关闭 混响器。
- Play On Awake (自动播放):如果启用,声音将在场景启动时开始播放。 如果禁用,则需要手动调用Play()方法执行播放。。 大型游戏开发项目中一般都会去掉这个勾选, 而是通过使用脚本的方式在程序中进行控制播放。
- Loop (是否循环播放):启用此选项可在音频剪辑到达结尾时进行循环播放。
- Priority ( 确定优先级):决定了当前音源在当前场景存在的所有音源中的播放优先级。(优先级: 0 = 最重要. 256 = 最不重要. 默认值 = 128.). 背景音乐最好使用0,避免它们有时被其它音源替换出去。{一般手机或者其它播放设备最多允许32个音源同时播放,这个优先级参数决定了在超出音源数目时,需要暂时关闭一些不重要的音源,优先播放更重要的音源}
- Volume (音频的音量):此音量代表了监听器处于距离音源1米时的音量大小,代表了最大音量处的声音大小。
- Pitch (音频音调): 可以改变音调数值, 可以加速或者减速播放音频剪辑的速度,默认值为1,表示正常的速度 。当<1时,慢速播放,当>1时,快速播放,速度越快,则音调越高。
- Stereo Pan (立体声道):此数值在[-1,1]之间变化,代表了2D音源的左右声道占比,默认值为0。最小值为-1, 表示采用左声道播放。最大数值为1时,采用右声道播放。此数值针对2D音源或者2D、3D混合音源有效,纯3D音源无效
- Spatial Blend (空间混合):此数值在[0,1]之间变化,设置该音频剪辑能够被3D空间计算影响多少,为 0 时为 2D音效,为1时为全3D音效,还是二者插值的复合音源。
- Reverb Zone Mix (混响器混合):设置输出到混响区域中的信号量,一般在[0,1]范围内变化, 不过也允许额外最多放大10分贝(1 - 1.1]来增强声音的远近效果。{也就是说,回响效果的回响距离等很多复杂参数主要由回响滤波器实现,而回响音量大小主要由此因子来简单控制}
3D Sound Settings: 与Spatial Blend参数成比例应用的设置。
Doppler Level (多普勒级别):在[0,5]之间变化,默认值为1,决定了音源的多普勒效应的份量,如果设置为0,则没有多普勒效应。{多普勒效应指的是当监听器与音源之间发生相对运动时,声音传递速度发生变化时的效果。
假设有一架飞机掠过上空,飞机上的警报器每个一秒钟发出一次声音,如果相对静止,则听到的效果是完整的每个一秒一次警报(尽管发出到听到需要较长的时间,但是间隔应该是一样的),而当飞机向我快速靠近时,由于距离在不断缩短,从发声到听到的距离在不断缩小,因此传递所化的时间越来越少,我方听到的警报应该是越来越紧促,而非均匀的每秒一次,靠近速度越快,警报间隔越短。当飞机快速离去时,则情况恰好相反,警报声音节奏越来越松缓。}
Spread (传播角度):设置3D立体声或者多声道音响在扬声器空间的传播角度。
Volume Rolloff (音频的衰减): 可以设置声音在距离上的衰减速度, (具体衰减数值由曲线决定,X-距离,Y-衰减后剩余百分比).
Min Distance (最小距离):默认值为1米,代表了音量曲线中的最大音量位置。超越最小距离时,声音将逐渐衰减。如果增大最小距离,则将相当于增大了3D世界中的声音,因为最小距离以下的位置均获得最大音量。如果减小最小距离,则相当于减小了3D世界中声音。{因为由Volume参数可知,在曲线上1米处为最大音量,默认曲线<1米处均获得最大音量,而当MinDistance<1时,默认曲线中X=1处的音量响应也会变小。注意上图中Listener竖线代表了监听器与当前音源的相对距离,而与Volume曲线的交点即是:1米处的最大音量经过3D世界距离传播到当前位置而衰减后的音量大小,即如果在曲线上,1米处Y坐标是0.8,而Listener处Y坐标是0.4,那么最终音量是衰减了50%,此参数与Volume参数共同作用输出最终音量大小,也即Volume*0.5}
Max Distance (最大距离):当超出此距离时,声音将停止衰减。{注意这里是停止衰减,也就是说,后续更远处听到的声音将保持在最大距离点的声音大小,不代表声音为0}
收听者(Audio Listener) 在场景中接收所有来自Audio Source的声音, 处理后传递至扬声器播放。记住:音频监听(Audio Listener)组件与音频播放(Audio Source)组件是播放音乐的必要条件。
Audio Listener 本身没有属性, 它相当于人的一对耳朵。虚拟的游戏 世界中可能有许多音频源,如果没有监听, 相当于嘈杂的环境中人没有耳朵一样。
Audio Listener组件在一个场景中只能有一个, 即只能有一个收听者,一般来说,将此组件添加至主角上,或者观察主角的摄像机上。创建摄像机时,摄像机对象上自动包含了AudioListener组件。
要想获得清晰的音频播放效果, 有如下两种方式:
- 在主摄像机(Main Camera)对象上挂上音频播放(Audio Source)组件, 音频播放组件加载音频剪辑即可。这种方式在一些简单2D小游戏中使用广泛,且简单。
- 建立一个空对象, 在此空对象上加载音频源 (Audio Source)组件, 保持此对象与具备音频监听组件的对象在一定范围内。这种方式在一般的3D场景中非常广泛。