文档章节

[Unity3D]游戏在播放声音发生卡顿

diguo2046
 diguo2046
发布于 2017/04/05 17:28
字数 645
阅读 108
收藏 0

问题

  • 有时游戏在播放声音时会发生卡顿

原因

音响效果和音乐(环境声)应采用不同处理方式来避免这种问题。 

解决方案

使用声音文件时考虑以下建议:

对于音乐和(或)环境声(Ambient Sounds):

存储在长音频剪辑剪辑(Audio Clips)中的音乐会占据大量内存,您有两种选择:

  • 使用流(Streaming)载入方式(Load Type),并且设置压缩格式(Compression Format)为Vorbis。如此设置即可使内存使用量减至最低,但相对的会占用更多CPU资源和I/O吞吐量。
  • 使用压缩并存储至内存(Compressed In Memory)载入方式,设置压缩格式为Vorbis。与第一个方案唯一的区别是,前者占据更多I/O吞吐,而此种方式占用更多内存。注意,您可以调整Quality滑块来通过降低音频质量来减小音频剪辑压缩后的尺寸。一般来说,100%的Quality值略高,我们推荐70%。注意,使用该种设置添加两个以上的音乐或环境声剪辑时会大量消耗CPU。

音效通常是短或中等长度的音频剪辑,它们的播放频率可能很高,也可能很低。对于这些可能的情况,使用时请参考如下规则:

  • 对于经常播放的短音频剪辑,使用载入时压缩(Decompress On Load)载入方式(Load Type),PCM或ADPCM压缩格式(Compression Format)。选择PCM时,播放无需解压,适用于短且使用频率高的音频剪辑。您也可以用ADPCM压缩格式,播放该格式需要解压缩,但解压缩ADPCM比Vorbis快很多。
  • 对于经常播放的中等长度剪辑,使用压缩并存储至内存(Compressed In Memory)和ADPCM压缩格式(Compression Format)。原始PCM的大小大概是ADPCM的3.5倍,ADPCM的解压缩算法也比Vorbis解压缩算法占用更少CPU。
  • 对于播放频率低的短音频剪辑,使用压缩并存储至内存(Compressed In Memory)和ADPCM压缩格式(Compression Format),理由同2。
  • 对于播放频率低的中等长度剪辑,使用压缩并存储至内存(Compressed In Memory)和Vorbis压缩格式(Compression Format)。使用ADPCM处理该种声音效果(SFX)未免显得浪费了存储空间,况且播放的频率又很低,所以使用更多CPU资源解压缩还是可以接受的。

本文转载自:https://support.unity3d.com/hc/zh-cn/articles/208211393

共有 人打赏支持
diguo2046
粉丝 1
博文 11
码字总数 463
作品 0
衡阳
程序员
【AR】在Unity中开始使用Vuforia(1)

原 目录 在Unity中开始使用Vuforia Vuforia在统一 关于Vuforia 安装Vuforia 创建一个新的Unity项目 Vuforia游戏对象 在您的项目中激活Vuforia 访问Unity中的Vuforia功能 将目标添加到您的场景...

lichong951
06/11
0
0
开放的 Web 3D 绘图技术 - WebGL

WebGL是一个开放的Web 3D技术,WebGL不需要在浏览器安装插件,只要浏览器支持WebGL技术你就可以用 Javascript 进行编程. 区别于现在的Flash Player(2D)和Unity Player(3D). 这些浏览器包括 Ch...

eechen
2012/10/06
0
4
精灵动画Animation对话框组成Idle动画的各精灵

精灵动画Animation对话框组成Idle动画的各精灵 1.3 精灵动画 场景中已经添加了精灵,现在是时候让让它动起来了。读者也许已经从精灵图集中,各精灵的命名中看出来了,这个精灵一共有两种动画...

大学霸
2015/01/16
0
0
Kinect结合Unity3D引擎开发体感游戏(一)

1.卡耐基梅隆的kinectWrapper.unitypackage; 2.OpenNI官方提供的OpenNIUnityToolkit-0.9.7.4.unitypackage(现在官方不提供更新与支持了,支持的版本unity3.4,在往上版本会出现很多问题,需...

地瓜儿
2013/09/16
0
34
Unity3D资源加载与内存管理

最近网友通过网站搜索Unity3D在手机及其他平台下占用内存太大. 这里写下关于Unity3D对于内存的管理与优化. Unity3D 里有两种动态加载机制:一个是Resources.Load,另外一个通过AssetBundle,其...

lizhenxiqnmlgb
05/24
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

windbg学习记录

我开始熟练使用windbg是从帮助手册开始的,也就是.hh命令。 就像学习windows开发从msdn开始一样,微软的产品虽然不开源,但是文档做的是相当的好。然而那些开源的东西呢?开源的竞争力其实就...

simpower
14分钟前
0
0
学习scala的网站汇总

https://www.codacy.com/blog/how-to-learn-scala/

Littlebox
16分钟前
0
0
配置本地的cloud9开发环境

前言 说到在线IDE开发环境,cloud9是不能绕过的,cloud9支持很多语言,默认支持的就有Node.js,Python,Ruby,PHP,Go,更逆天的是,他还支持数据库,包括MySQL,MongoDB,Redis,SQLite。但...

Kefy
20分钟前
1
0
springcloud应用程序上下文层次结构

如果您从SpringApplication或SpringApplicationBuilder构建应用程序上下文,则将Bootstrap上下文添加为该上下文的父级。这是一个Spring的功能,即子上下文从其父进程继承属性源和配置文件,因...

itcloud
24分钟前
0
0
新程序员最爱的免费资源

简评:国外美女程序员推荐了她自己用过的一些免费资源,对新手比较友好的那种。 原作者 Ali Spittel,是个美女程序员,以下这些资源都是她自己试过的。以下「我」代表 Ali Spittel。 学 HTML...

极光推送
28分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部