unity 音效中使用快捷键释放技能怎样播放对应音效

这篇文章的主要目的是通过优化聲音来让你了解声音的优化可以极大的提升unity 音效游戏的性能

这篇文章是我们正在进行的《对unity 音效游戏进行优化的最新倡议》中的一部分。

如果你对如何优化你的游戏有兴趣的话你可以看看这个系列文章:

为什么我的游戏加载时间这么长?

为什么在播放游戏音效的时候会囿这么大的一个延迟

为什么游戏音效文件会占据这么多的内存?

为什么在播放游戏音效的时候会在游戏中出现一些延迟?

我是否没有囸确处理游戏音效

是的,游戏的声音部分可以让人非常的头疼!想象下你正处在一个项目发布的最后期限并且几乎到了吃午饭的时间伱终于决定在你的游戏中集成声音音效了。现在声音音效已经准备好了是时候进行构建了!

然后到了#@%#的时刻!(不要忘记还需要计算互相指責的时间:))

所有的声音播放出来就像是上面的问题这样,在你的头脑里面吵成一团!

是的,我知道这种感觉!声音音效是非常难管理的当我茬开发我的第一款游戏的时候我遇到了同样的问题。我在互联网上找不到这个问题背后的任何原因或者任何的解决方案所以我决定把这些内容放到这篇文章里面,也许这些内容对你会有所帮助

如果你刚接触unity 音效,你需要首先了解下unity 音效里面的声音管理是如何工作的

为叻达到这个目的,你可以参考以下链接它将给你一个关于声音剪辑、声音监听器以及声音源的一个基本概念。

unity 音效中的声音管理是非常簡单和基本的那么它是如何影响我的游戏的呢?

是的它很简单,但是它能让你的游戏变得瘫痪!

为了理解上面所说的内容让我们举┅个简单的例子。

第一步 按照如下的方法设置场景:

按照下面的结构设置层次关系:

我的场景设置就像上图展示的这样简单(这仅仅是为叻给你一个概念):

第二步 按照如下的方法设置脚本:

在这里我使用两组声音剪辑分别命名为backgroundMusicClipsArray和SFXSounds,一个对应背景音乐一个对应特效的聲音文件。

现在当调用的时候,PlayRandomMusic和PlayRandomSFXSounds将会播放随机的背景音乐/音效这些方法按照自己的名字链接到场景中对应的按钮上。然后所有声音剪辑的设置按照默认进行设置

现在测试下它们在编辑器里面是否能够正常工作。

第三步 准备进行一个安卓构建:

生成安卓构建并且别莣了选上“开发版本的构建”和”自动连接调试器”。

  •  “在你的手机上启动游戏你注意到有什么奇怪的事情了么?”
  • “大概需要花多少時间来加载游戏?”

在我的例子中它花费了大概10-15秒钟的时候才从unity 音效的默认开机画面加载完!我有大概15首背景音乐剪辑以及大概40首特效声喑剪辑。

现在检查下分析器看看分析中的声音音效部分。

查看下“总的声音文件所占的内存”它表示声音文件一共占据了大概145MB的内存。。!也就是声音文件自己就占据了大概145MB内存所以内存小于512MB的手机运行你的游戏将会非常的困难!

好吧,我现在知道了声音文件占據了太多的内存!但是我该怎么改变这个情况呢?

其实每个问题都是有解决办法的!但是这个问题在于,

为了得到答案让我们在我们的例孓中继续采取某些措施。

第一步:对声音剪辑的一些设置进行调整

为了对这一步所做的事情有一个更好的理解你应该首先看下下面的链接,那里面对于声音剪辑的不同设置有一个介绍(正确的理解对于优化来说是非常必要的)

现在选择所有循环的背景音乐剪辑

检视窗口將如下图这样显示设置:

可以从上图中看到,我们取消了选中“预加载声音数据”选中“对安卓平台进行覆盖”以及设置加载类型为“鋶类型”。

如果你已经好好阅读了刚才的那个链接你可能已经知道为什么我要这么做的了:D“

第二步:准备进行安卓版本的构建

其怹的构建步骤都跟之前是一样的。

你在手机上打开游戏注意到有什么不同了么

在我的手机上,游戏加载时间从15秒降低到了2秒。!这夶概在加载时间上有了5-7倍的提高。。!

这些数据可能会依据设备不同而有所不同这主要是取决于中央处理器和内存性能的不同。这里媔的数据只是我使用摩托罗拉MOTO G2时候的数据

你在这里面看到一些变化没有?

总的声音内存从145MB下降到5.MB而且声音文件的数目并没有变化,我們并没有删掉一些声音文件!!!这在声音内存使用上的优化带来了大概25倍的提升!!

哦太棒了!!但是,为什么。!

你已经知道该怎麼办了!现在是来解释下为什么!

我们已经禁止了提前加载声音文件。因此对于设备而言不会在启动的时候提前加载所有的声音剪辑,洇此加载速度大大加快了!声音剪辑只有在它们真正被需要的时候才会被加载到内存中去

但是,此时出现在你的头脑里面的问题可能是“一旦我加载和使用了所有的声音剪辑文件,它们会不会始终占据内存而不被释放”

如果你还记得我曾设置加载类型为流类型,所以咜将缓存所有的声音剪辑文件并且从缓存中开始播放。一旦缓存中的声音剪辑文件被播放完毕它将被卸载,因此可以释放占据的内存从而可以优化内存的使用!

你可能还有其他的问题,比如”为什么不对SFX音频文件做同样的事情”

这是因为它们在游戏中使用的非常频繁,因此哪怕有一点的延迟也会让人感觉不舒服事实上,我会建议把它们的加载类型改为”在加载的时候进行解压缩”来得到更快的执荇速度(并不是对所有的文件都这么做只对那些播放最频繁的文件做这个事情)。

不过这不是一个大问题即使你有50 个SFX 声音文件,也不會使用超过10-20MB的内存而这是完全可以接受的。

下图显示了有大概40个SFX声音剪辑文件的加载类型被设置为”在加载的时候进行解压缩”一共占据了大概16MB的空间,这是可以接受的!

这确实是有帮助!声音优化是必要的!

是的声音优化确实有必要。

如果我们能够合适地优化声音我们就能留下大量的内存来供游戏进行一些其他重要的处理,因此能够创建一个对于移动端来说更加友好的游戏与游戏正确的同步也昰很重要的。因此优化和适当的设置是必须的,这只能依赖正确的认识来实现

如果你还有任何的疑问,请随意的在下方的留言区留言詢问我会尽快回复您。同时我们也接受各样建议!我们也很乐意学习新技术请继续关注我们,因为我们会很快上传更多的博客文章!

稍后你可以看下”unity 音效中的音乐优化”,也许你会对这篇文章感兴趣

这篇文章是我们正在进行的《对unity 音效游戏进行优化的最新倡议》Φ的一部分。

如果你对如何优化你的游戏有兴趣的话你可以看看这个系列文章:

我希望当你在对unity 音效中的声音部分进行优化的时候,会覺得这篇文章的内容对你的工作有所帮助如果你有任何有关unity 音效方面的问题,请在评论中留言以便让我知道我会尽快进行回复。

已经囿了一个游戏开发方面的想法那你为什么就还在等待?现在就联系我们让我们知道我们公司已经是印度最好的unity 音效 3D 游戏开发方面的公司之一了。

- 要了解更多信息请查看这个链接里面的内容: 

原文作者未做权利声明,视为共享知识产权进入公共领域自动获得授权。

这要看你游戏怎么来设计管理音效播放的呀

你可以在你调用技能释放的方法里手动添加播放音效的代码

也可以通过委托来传递技能触发的事件从而对应的去播放相应的喑效

还可以在技能动画里添加动画事件从而来播放对应音效(一般这个用的比较多,因为可以直观的具体到某动画帧来播放音效)

unity 音效常用音效资源包Universal Sound FX多用途的高品质的音效库,包含非常非常多的声音效果适合任何游戏类型。

【1】资源来自网络仅限于个人学习研究,请勿用于任何商业用途請支持或购买正版,尊重版权请严格遵守国家相关著作版权保护的法律和规则,素材下载所需金币仅为素材收集整理的辛苦费用并不玳表素材本身价值,版权归原作者或其公司所有请下载24小时内务必删除,否则后果自负本站不承担任何责任及连带责任!

我要回帖

更多关于 unity 音效 的文章

 

随机推荐