分类:Unity、C#、VS2015

创建日期:2016-04-05

一、简介

音频文件 (Audio File) 资源的选择原则应该以无故障地流畅运行为宗旨。下面列出了常用的音频文件。

.AIFF 在导入时转换为未压缩的音频,最适合短音效。

.WAV 在导入时转换为未压缩的音频,最适合短音效。

.MP3 在导入时转换为 Ogg Vorbis,最适合较长的音乐曲目。

.OGG 压缩的音频格式,最适合较长的音乐曲目。

导入音频文件到Unity中时,可以选择其最终格式并将其推入立体声道或单声道。

要访问导入设置 (Import Settings),请在工程视图 (Project View) 中选择音频片段 (Audio Clip),然后在检视器 (Inspector) 中查找音频导入程序 (Audio Importer)。在此,您可将片段 (Clip) 压缩为 Ogg Vorbis 格式,并将其推入单声道或立体声回放,然后微调其他选项,如进行非常重要的加载时解压缩 (Decompress On Load) 设置。

导入音频文件后,就可以将音频文件添加至游戏对象 (GameObject)。将音频文件拖入至游戏对象 (GameObject) 时,此音频 (Audio) 文件将自动创建一个音频源组件 (Audio Source Component)。

二、细节描述

使用音频文件 (Audio Files) 时,需要注意以下细节。

1、原生 (Native) 和压缩 (Compressed)

Unity中的音频可以是原生 (Native) 或 压缩 (Compressed) 音频。Unity 支持大部分常见格式。默认模式为原生 (Native),即导入原始文件中的音频数据时,不对其做任何更改。但是,Unity 也可在导入时只启用导入程序中的压缩 (Compressed) 选项压缩音频数据。

原生 (Native) 和压缩 (Compressed) 模式的区别如下:

  • 原生 (Native):原生(例如.wav文件、.aiff文件等)适用于短音效。这类音频数据容量较大,但无需在运行时对声音解码。
  • 压缩 (Compressed): 音频数据容量较小,但需要在运行时对数据进行解压缩,这将产生处理开销。Unity会将音频编码为 Ogg Vorbis(Mac/PC/控制台 (Consoles))或 MP3(移动平台),具体取决于定位。

如果希望获得最佳音质,请提供 WAV 或 AIFF(包括 PCM 数据)等未压缩格式的音频,让 Unity 为你进行编码。如果你只定位 Mac 和 PC 平台(包括独立式和网页播放器两种),则导入 Ogg Vorbis 文件不会降低质量。但是,在移动平台上导入时,将 Ogg Vorbis 和 MP3 文件重新编码为 MP3 文件会对音质有轻微影响。

2、音频源 (Audio Source)

Aud音频源 (Audio Source) 在场景中播放音频片段 (Audio Clip) 。如果音频片段 (Audio Clip) 为三维片段,则源在给定位置进行播放并会随着距离而衰减。音频可以在扬声器之间散播(散播 (Spread))并在三维与二维之间变形(平移级别 (PanLevel))。这可以使用衰减曲线 (falloff curve) 随着距离进行控制。此外,如果侦听器处于一个或多个混响区域 (Reverb Zone)内,则会对源应用混响。(仅限专业版)可以将各个过滤器应用于每个音频源 (Audio Source),以获得甚至更丰富的音频体验。

下面描述了与音频源相关的属性及功能。

  • 音频片段 (Audio Clip):对将播放的声音片段文件的引用。
  • 静音 (Mute):如果启用,声音会进行播放,但会静音。
  • 绕过效果 (Bypass Effects):这是用于快速“绕过”应用于音频源 (Audio Source) 的过滤器效果。关闭/打开所有效果的方便途径。
  • 唤醒时播放 (Play On Awake):如果启用,声音会在场景启动时开始播放。如果禁用,需要在脚本中使用 Play() 命令启动它。
  • 循环 (Loop):启用此项可使音频片段 (Audio Clip) 在达到结尾时循环。
  • 优先级 (Priority):确定此音频源 (Audio Source) 在场景中共存的所有音频源 (Audio Source) 间的优先级。(优先级 (Priority):0 = 最重要。256 = 最不重要。默认 = 128。)。将 0 用于音乐轨道可避免它偶尔换出。
  • 音量 (Volume):与音频侦听器 (Audio Listener) 相距一个世界坐标单位(一米)处的声音高低程度。
  • 音调 (Pitch):由于音频片段 (Audio Clip)减慢/加快而形成的音调变化量。值 1 为正常播放速度。
  • 三维声音设置 (3D Sound Settings):音频片段 (Audio Clip) 为三维声音时应用于音频源 (Audio Source) 的设置。
  • 平移级别 (Pan Level):设置三维引擎对音频源 (Audio Source) 的影响程度。
  • 散播 (Spread):设置在扬声器空间中相对于三维立体声或多声道声音的散播角度。
  • 多普勒级别 (Doppler Level):确定对此音频源 (Audio Source) 应用的多普勒效应量(如果设置为 0,则不应用任何效应)。
  • 最小距离 (Min Distance):在最小距离 (MinDistance) 内,声音会保持为可能的最高音量。在最小距离 (MinDistance) 外,它会开始衰减。增大声音的最小距离 (MinDistance) 可使其在三维世界坐标中“更大声”,减小它可使其在三维世界坐标中“更安静”。
  • 最大距离 (Max Distance):声音停止衰减处的距离。超过此点,它会保持为与侦听器相距最大距离 (MaxDistance) 处的音量,不会再衰减。
  • 滚降模式 (Rolloff Mode):声音的降低速度。值越高,在听到声音之前便必须越接近侦听器。(这由一个图形确定)。
  • 对数滚降 (Logarithmic Rolloff):在接近音频源 (Audio Source) 时,声音较高,但是在远离对象时,它会以极快速度降低。
  • 线性滚降 (Linear Rolloff):离音频源 (Audio Source) 越远,可以听到的声音越少。
  • 自定义滚降 (Custom Rolloff):来自音频源 (Audio Source) 的声音的行为取决于设置滚降图的方式。
  • 二维声音设置 (2D Sound Settings):音频片段 (Audio Clip) 为二维声音时应用于音频源 (Audio Source) 的设置。
  • 二维平移 (Pan 2D):设置引擎对音频源 (Audio Source) 的影响程度。

列出这些属性的目的是为了弄明白英文单词属性的含义。

3、音频侦听器 (Audio Listener)

音频侦听器 (Audio Listener) 充当类似于麦克风的设备。它从场景中的任何给定音频源 (Audio Source) 接收输入,并通过计算机扬声器播放声音。对于大多数应用程序,最有意义的是将侦听器附加到相机 (Camera)。如果音频侦听器 (Audio Listener) 处于混响区域 (Reverb Zone) 边界内,则会对场景中的所有可听见声音应用混响。(仅限专业版)而且,音频效果 (Audio Effect) 可以应用于侦听器,并且将应用于场景中的所有可听见声音。

你的场景中只能有一个音频监听器 (Audio Listener),并且监听器通常附属于主相机 (Main Camera)。

4、音频片段 (Audio Clip)

音频片段 (Audio Clip) 包含音频源 (Audio Source)。 Unity 支持单声道、立体声和多声道音频资源(最多八个声道)。Unity 可以导入的音频文件格式包括 .aif、.wav、.mp3 和 .ogg 。Unity 还可以导入 .xm、.mod、.it 和 .s3m 格式的 tracker modules(跟踪器模块)。跟踪器模块资源的行为方式与 Unity 中的任何其他音频资源相同,不过资源导入检视器中不提供波形预览。

任何导入至 Unity 的音频文件都可在脚本中找到其音频片段 (Audio Clip) 的实例,它实际上是一个实用的音频数据存储工具。

  • 音频格式 (Audio Format):运行时用于声音的特定格式。
  • 原生 (Native):此选项以较大文件大小为代价提供较高质量,最适合于非常短的声音效果。
  • 压缩 (Compressed):压缩可生成较小文件,但是与原生音频相比质量有所下降。此格式最适合于中等长度声音效果和音乐。
  • 三维声音 (3D Sound):如果启用,声音会在三维空间中播放。单声道和立体声声音都可以进行三维播放。
  • 强制单声道 (Force to mono):如果启用,则音频片段会降混为单声道声音。
  • 加载类型 (Load Type) Unity:在运行时用于加载音频资源的方法。
  • 加载时解压缩 (Decompress on load):音频文件将在加载之后立即解压缩。将此选项用于较小的压缩声音可避免动态解压缩的性能开销。请注意,加载时解压缩声音使用的内存比保持声音处于压缩状态时大约多十倍,因此请勿将此选项用于大型文件。
  • 在内存中保持压缩状态 (Compressed in memory):使声音在内存中保持压缩状态并在播放时解压缩。此选项具有少量性能开销(尤其是对于 Ogg/Vorbis 压缩文件),因此仅将其用于加载时解压缩会使用过多内存量的较大文件。请注意,由于技术限制,在使用 FMOD 音频的平台上,此选项对于 Ogg Vorbis 资源会无提示地切换为从光盘进行流式处理 (Stream From Disc)。
  • 从光盘进行流式处理 (Stream from disc):直接从光盘对音频数据进行流式处理。此选项使用的内存通常是文件大小的一小部分,因此对于音乐或其他很长的音轨十分有用。出于性能原因,通常建议一次仅从光盘对一个或两个文件进行流式处理,不过可以从容处理的流数量取决于硬件。
  • 压缩 (Compression):应用于压缩片段的压缩量。 可以在滑块下查看有关文件大小的统计信息。调整此值的一个好方法是将滑块拖动到保持播放“足够良好”、同时文件小到足以满足分发要求的位置处。
  • 硬件解码 (Hardware Decoding):(仅限 iOS)在 iOS 设备上,可以使用 Apple 的硬件解码器,从而在解压缩过程中产生较小的 CPU 开销。有关更多信息,请查看平台相关详细信息。
  • 无缝循环 (Gapless looping):(仅限Android/iOS)在压缩无缝循环音频源文件(采用非压缩 PCM 格式)时使用此选项可确保在对接处保持完美的连续性。标准 MPEG 编码器在循环点处引入了一个较短无声期,这可作为短暂的“嘀嗒”或“嘭嘭”声听见。

音频片段(Audio Clip)必须与音频源 (Audio Sources) 和音频侦听器 (Audio Listener) 配合使用才可生成声音。将片段添加至游戏中的对象时,会将音频源 (Audio Source) 组件添加至含有音量 (Volume)、音高 (Pitch) 等许多其他属性的对象。播放源 (Source) 时,音频侦听器 (Audio Listener) 可"听到"范围内的所有源,再将这些源组合起来,声音即可通过扬声器发出。

5、音轨模块

音轨模块 (Tracker Modules) 文件与 MIDI 文件有许多相似之处。音轨是包含何时弹奏乐器、音高和音量等信息的乐谱,然后以此创建原始曲调的旋律和节拍。

但是,MIDI有一个缺点,音质依赖于音频硬件中的可用音色库,因此,MIDI 音乐的音质会因使用的计算机不同而不同。

相比之下,音轨模块既包括高质量的PCM示例,又不受所使用的音频硬件的影响。

(1)支持的格式

Unity可支持四个最常见的模块文件格式,即 Impulse Tracker (.it)、Scream Tracker (.s3m)、扩展模块文件格式 (Extended Module File Format)(.xm) 和原始模块文件格式 (original Module File Format) (.mod)。

(2)使用音轨模块 (Tracker Modules) 的优势

音轨模块文件不同于主流的 PCM 格式(.aif、.wav、.mp3 和 .ogg),此文件可以非常小,但不会对音质造成影响。你可调节一个声音样本的音高和音量(并且可运用其他效果),所以,其本质上是一种可播放曲调的“乐器 (instrument)”,还可节省录制完整曲调所需的开销。因此,将音轨模块应用于游戏,可帮助解决音乐和下载大文件等问题。

【Unity】3.5 导入音频文件的更多相关文章

  1. 【已解决】C#导入音频文件

    C#导入音频文件,找到Resources.resx,再进行导入. 直接添加文件到Resources是不能使用的. 解决的具体步骤: 引用音频文件核心代码: //播放背景音乐 SoundPlayer m ...

  2. unity runtime时导入fbx文件

    TriLib is a Unity model loader package designed to allow the user to load various 3D model formats i ...

  3. Unity 播放音频文件

    Unity 播放音频文件参考代码: public void Play(string strSoundName, float autoDestroyTime = 0f, bool bLoop = fal ...

  4. iOS从零开始学习直播之音频1.播放本地音频文件

      现在直播越来越火,俨然已经成为了下一个红海.作为一个资深码农(我只喜欢这样称呼自己,不喜欢别人这样称呼我),我必须赶上时代的潮流,开始研究视频直播.发现视屏直播类的文章上来就讲拉流.推流.采集.美 ...

  5. unity导出工程导入到iOS原生工程中详细步骤

    一直想抽空整理一下unity原生工程导入iOS原生工程中的详细步骤.做iOS+vuforia+unity开发这么长时间了.从最初的小小白到现在的小白.中间趟过了好多的坑.也有一些的小小收货.做一个喜欢 ...

  6. iOS开发拓展篇—封装音频文件播放工具类

    iOS开发拓展篇—封装音频文件播放工具类 一.简单说明 1.关于音乐播放的简单说明 (1)音乐播放用到一个叫做AVAudioPlayer的类 (2)AVAudioPlayer常用方法 加载音乐文件 - ...

  7. C语言解析WAV音频文件

    C语言解析WAV音频文件 代码地址: Github : https://github.com/CasterWx/c-wave-master 目录 前言 了解WAV音频文件 什么是二进制文件 WAV的二 ...

  8. java 获取音频文件时长

    需要导入jar包:jave 1.0.2 jar 如果是maven项目,在pom.xml文件中添加: <dependency> <groupId>it.sauronsoftwar ...

  9. iOS中音频的录制与播放(本地音频文件的播放)

    iOS功能开发涉及到音频处理时,最常见的时进行录音,以及音频文件的播放.停止播放等的操作.在开发中还要避免同一个音频文件,或不同音频文件之间的处理,比如说正在播放A音频时,可以停止播放A音频,也可以播 ...

随机推荐

  1. 如何导出标准模板库(STL)类的实例化和包含STL类对象数据成员的类

    本文翻译自 https://support.microsoft.com/zh-cn/help/168958/how-to-export-an-instantiation-of-a-standard-t ...

  2. codevs 1576 最长严格上升子序列

    题目链接:http://codevs.cn/problem/1576/ 题目描述 Description 给一个数组a1, a2 ... an,找到最长的上升降子序列ab1<ab2< .. ...

  3. RHEL7 添加网卡并设置多个IP地址

    首先在虚拟机管理界面中给该虚拟机添加一块虚拟网卡,VirtualBox虚拟机中要shutdown才能添加. [root@rhel7 ~]# nmcli device show | grep -i de ...

  4. 使用gprof对应用程序做性能评测

    1,包含头文件gperftools/profiler.h 2,代码结构如下: int main() { // codes ProfilerStart("./profile"); / ...

  5. NYOJ----蛇形填数

    蛇形填数 时间限制:3000 ms  |  内存限制:65535 KB 难度:3   描述 在n*n方陈里填入1,2,...,n*n,要求填成蛇形.例如n=4时方陈为: 10 11 12 1 9 16 ...

  6. 【Android】Android如何实现手机震动

    实现手机震动其实很简单,手机震动使用是Vibrator类,然后震动也是需要权限的,在使用之前在AndroidManifest.xml文件中添加 <uses-permission android: ...

  7. 【javascript】js中的函数节流和函数防抖

    一.概念解释  函数节流和函数防抖,两者都是优化高频率执行js代码的一种手段.  大家大概都知道旧款电视机的工作原理,就是一行行得扫描出色彩到屏幕上,然后组成一张张图片.由于肉眼只能分辨出一定频率的变 ...

  8. Junit 4.x 单元测试,参数化测试,套件测试 实例

    对下面三个类进行单元测试 ,组成套件测试. public class Calculate { public int add(int a, int b) { return a + b; } public ...

  9. golang 学习笔记 ---数组/字符串/切片

    数组 数组是一个由固定长度的特定类型元素组成的序列,一个数组可以由零个或多个元素组成.数组的长度是数组类型的组成部分.因为数组的长度是数组类型的一个部分,不同长度或不同类型的数据组成的数组都是不同的类 ...

  10. MySQL加载配置文件的顺序

    MySQL5.6启动时,按照下表,从上往下的顺序加载配置文件: File Name Purpose /etc/my.cnf Global options /etc/mysql/my.cnf Globa ...