文档章节

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

diguo2046
 diguo2046
发布于 2017/04/05 17:28
字数 645
阅读 123
收藏 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

下一篇: git常用命令
diguo2046
粉丝 1
博文 14
码字总数 623
作品 0
衡阳
程序员
私信 提问
Unity3D 游戏引擎之详解游戏开发音频的播放(十五)

Unity3D 游戏引擎之详解游戏开发音频的播放 雨松MOMO原创文章如转载,请注明:转载自雨松MOMO的博客原文地址:http://blog.csdn.net/xys289187120/article/details/6989328 游戏音频的播放在任...

彭博
2012/03/09
630
0
Hololens 开发笔记——Audio Source

版权声明:本文版权归Jitwxs所有,欢迎转载,但未经作者同意必须保留原文链接。 https://blog.csdn.net/yuanlaijike/article/details/84250907 文章目录 音频资源 Unity中的音频文件分为两类...

Jitwxs
2018/11/19
0
0
Hololens 开发笔记(8)——Audio Source

版权声明:本文版权归Jitwxs所有,欢迎转载,但未经作者同意必须保留原文链接。 https://blog.csdn.net/yuanlaijike/article/details/85202636 一、音频资源 Unity中的音频文件分为两类:原生...

Jitwxs
2018/12/22
0
0
unity pro 2017 Mac(游戏开发制作工具)详细破解教程!

Unity 2017 for Mac的优点在于它可以让您创建可在所有主流桌面和移动操作系统上播放的游戏,而不会影响游戏体验和性能。如果你需要一个高端和基于GUI的游戏开发工具附带一个非常强大的引擎,...

无言苍白
2018/08/22
0
0
关于UNITY学习,给新生建议

没有不可能,只有不努力。 本人自学UNITY,实力不敢称最好,但绝对不是小白,自己独立做出过游戏,AR。(用C#) 1、 导入模型一定要注意坐标,否则会很麻烦。本人因为这个吃了很多盐 2、 学u...

ちょうご
03/19
0
0

没有更多内容

加载失败,请刷新页面

加载更多

利用mybatis generator生成实体类、Mapper接口以及对应的XML文件

项目中通常会遇到数据的持久化,如果是采用mybatis的orm,就会涉及到生成xml的问题,刚好mybatis官网提供了这么个插件MyBatis Generator,效果简直是棒呆。 1. 首先需要在build.gradle文件中...

啊哈关关
今天
2
0
SpringSocial相关的知识点

使用SprigSocial开发第三方登录 核心类 ServiceProvider(AbstractOauth2ServiceProvider):主要负责实现server提供商(例如QQ,微信等共有的东西),默认实现类是AbstractOauth2ServiceProvider...

chendom
今天
3
0
Java并发之AQS详解

一、概述   谈到并发,不得不谈ReentrantLock;而谈到ReentrantLock,不得不谈AbstractQueuedSynchronizer(AQS)!   类如其名,抽象的队列式的同步器,AQS定义了一套多线程访问共享资源...

群星纪元
昨天
4
0
Fabric-sdk-java最新教程

Fabric Java SDK是Fabric区块链官方提供的用于Java应用开发的SDK,全称为Fabric-sdk-java,网上可用资料不多,本文列出了精心整理的针对Fabric Java SDK的最新精选教程。 如果希望快速掌握F...

汇智网教程
昨天
3
0
react 子组件监听props 变化

componentWillReceiveProps //已经被废弃 getDerivedStateFromProps// 推荐使用//如果条件不存在必须要返回null static getDerivedStateFromProps(props, current_stat...

一箭落旄头
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部