您的位置:首页 > 移动开发 > Unity3D

Unity性能优化—声音优化

2017-07-11 17:47 302 查看


Unity性能优化—声音优化



发表于 2016-9-28 11:43:03
|
只看该作者
|只看大图



|倒序浏览
|阅读模式

本帖最后由 manew_JR 于 2016-9-28 11:48 编辑 [/i]

[align=center] [/align][align=left] [/align][align=left]目标给你一个关于在Unity游戏中通过优化声音提高性能的建议 [/align][align=left] [/align][align=left]为什么我的游戏加载时间那么长?[/align][align=left] [/align][align=left]为什么播放游戏声音时延迟那么长?[/align][align=left] [/align][align=left]为什么声音文件占那么多的内存?[/align][align=left] [/align][align=left]为什么我一播放声音游戏就那么卡?[/align][align=left] [/align][align=left]难道是因为我在开发时对声音的处理有问题[/align][align=left] [/align][align=left]也许你在加载声音时都会出现以上的问题冲到你的脑门上!![/align][align=left] [/align][align=left]好吧,我知道这种感觉!!声音管理起来很棘手;当我开发第一个游戏的时候我也有遇到过相同的问题。我在网上任何地方都找不到原因和解决方案。所以我决定发布这篇文章,希望能帮助到你。[/align][align=left] [/align][align=left]如果你是Unity初学者,首先需要弄清楚声音管理如何在Unity中工作的。[/align][align=left] [/align][align=left]为此,你可以参照下面的链接,去了解一下Audio Clips、Audio Listeners、AudioSources的基本操作:https://unity3d.com/learn/tutorials/modules/beginner/audio/audio-sources-and-listeners[/align][align=left] [/align][align=left]在Unity中的声音管理是非常简单和基本的,它是如何影响我的游戏呢? [/align][align=left] [/align][align=left]· 是的,非常简单哦,但是它(声音管理)却能让你的游戏陷入困境![/align][align=left] [/align][align=left]· 让我们通过一个简单的案例去理解它吧。[/align][align=left] [/align][align=left]步骤一:设置场景,如下所示:[/align][align=left] [/align][align=left]创建一个Canvas,给它添加两个Button控件(一个名为Music-Button,另一个为Sound-Button)。[/align]

[align=left]在Main Camera下创建一个空物体命名为AudioSources,且又在它下面再创建两个空物体分别命名为“BackgroundMusic”和“SFX-Sounds”。[/align]

[align=left]然后创建一个空物体(Empty GameObject),并命名为“SoundManager”。(名字随你来)[/align]

[align=left]在hierarchy中层次关系如下所示:[/align]



1.png (50.3 KB, 下载次数: 3)

下载附件

保存到相册

2016-9-28 11:34 上传

[align=left]我的屏幕设置很简单,如下所示:[/align]



QQ截图20160928113506.png (23.21 KB, 下载次数: 3)

下载附件

保存到相册

2016-9-28 11:34 上传

[align=left]步骤二:创建一个脚本,如下所示:[/align]

[align=left][/align][align=left][C#] 纯文本查看 复制代码[/align]?
4000
[align=left]在这里,对于背景音乐和SFX声音(SFX声音就是一点短的音频剪辑,如跳跃的声音(Biu)等)我声明了两个Audio Clip的数组,名字分别为:backgroundMusicClipsArray和 SFXSounds(分别用来存放对应的声音资源)。[/align][align=left] [/align][align=left]也声明了两个AudioSource类型的成员变量(就是对应的“BackgroundMusic”和“SFX-Sounds”,记得把他们拖到脚本上哦)。[/align][align=left] [/align][align=left]这里有两个名为PlayRandomMusic() 和PlayRandomSFXSounds()的方法,用于在我们调用该方法时播放随机音乐/声音。然后为对应的Button添加对应的响应事件。把AudioClips的设置全设为默认即可。[/align][align=left] [/align][align=left]现在测试它在编辑器是否能正常工作。[/align][align=left] [/align][align=left]步骤三:把发布平台设置为安卓平台[/align][align=left] [/align][align=left]生成 Build 的时候记得把 Development BuildAuto Connect Profiler 勾选上,如下图所示:[/align][align=left][/align]



0 (2).webp.jpg (54.78 KB, 下载次数: 2)

下载附件

保存到相册

2016-9-28 11:36 上传

[align=left]在你手机上开始游戏,你有发现到什么奇怪的事情吗?[/align]

[align=left]加载游戏花了多少时间?[/align]

[align=left]对于我,从Unity的默认界面加载到游戏界面我大约花了10-15秒,我的游戏中大概有15个背景音乐和40个SFX声音片段。[/align][align=left] [/align][align=left]现在,查看一下Profiler,在Profiler中找到Audio模块。如下图所示(下面第一张图是我自己弄得,怕大伙们找不到Audio模块。。)[/align]



0.jpg (205.28 KB, 下载次数: 3)

下载附件

保存到相册

2016-9-28 11:37 上传

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: