Unity5.6.x 声音导入设置

版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/qq563129582/article/details/78351000

在Unity5.6.x 中导入声音文件我们能看到类似下面的面板 ,

我们先看第一个选择Load Type,他有三个可值:

1.Decompress On Load;

2.Compressed In Memory;

3.Streaming。


Decompress On Load 
在硬盘上压缩这个文件,并在第一次加载到内存的时候解压它,这是加载声音文件的默认选项,大多数情况下我们应该使用这个选择 。
加载后解压缩声音,声音文件将在他们加载不久后就解压,这个选项适用于较小的压缩声音,以避免即时解压缩的性能开销。要知道在加载时解压 Vorbis编码的声音将使用的内存是压缩状态的十倍或更多(ADPCM编码大概3.5倍)所以不要使用此选项用于大文件。
Decompress On Load 默认选项适用于小文件。

Compressed In Memory
保持声音在内存中是压缩的并在播放时解压缩。这有更多的CPU开销(尤其是OGG / Vorbis格式的压缩文件),但可以提高加载速度并减少内存消 耗,因此这个选项适用于大文件。 在性能窗口可以看"DSP CPU"。
Compressed In Memory 适用于大文件。

Streaming 选项
直接从磁盘流音频数据。这只使用了原始声音占内存大小的很小一部分。 该方法使用最少的内存和最多的CPU,它有个很明显的缺点就是不能被引用超过一次。试着让 Audio Clip产生多个副本的时候会每个都产生数据缓冲区,如果非要这么做会产生大量的内存和cpu消耗。因此这个选择最好是给单实例的Audio Clip,如背景和环境音效。对于手游而言不要优先考虑使用这种方式。

其他一些加载设置
在场景中把一 个Audio Clip赋值给Audio Source组件,这个音频文件将在场景初始化的时候加载到内存中。但是如果它 启用了,加载Audio Clip就变成了一个后台任务它将推迟到场景初始化完成后再加载,换句话说就是在游戏开始后开始加载。 通过启用这个选择我们可以提高场景的启动速度,但Play声音的时候它还在后台加载的话播放将推迟到加载完成,我们可以使用AudioClip对象的loadState 属性来检查是否加载完成以保证声音在不会在一个不恰当的时间播放。

Preload Audio Data 默认是启用的,它表示Unity自动在场景初始化时加载文件。禁用此选项将推迟加载直到 AudioSource的 Play() 或 PlayOneShot() 方法执行的时候。从硬盘加载声音文件,然后解压,再push到内存里然后再播放,这么一系列的动作 可能 会导致 CPU的峰值。
由于播放延迟和性能消耗,不建议在播放的瞬间加载。我们应该控制加载在播放之前的某些方便的时间使用AudioClip对象的LoadAudioData()方法加载。我们也可以用AudioClip对象的UnloadAudioData()方法手动控制声音文件的内存释放。

猜你喜欢

转载自blog.csdn.net/qq563129582/article/details/78351000
今日推荐