Unity (游戏音效模块的封装)

Unity (游戏音效模块的封装)

前言

你是不还在被游戏的音效组件AudioSoure 播放音乐困扰,为了更加节省资源,更加方便快捷的播放音效,本篇文章将为你解答疑惑。

AudioSoure中有很多的变量
在这里插入图片描述
如果场景中有很多的AudioSoure将会非常消耗资源,我们可以仿照对象池的原理,把声音进行类似的操作。

直结开始教程

首先创建3个脚本(AudioManager,ClipManager,SoureManager)

ClipManager:用来管理Clip片段
AudioManager:用来管理组件AudioSoure
SoureManager:相当于总管理者,提供对外调用
在这里插入图片描述

我们先来编写AudioManager脚本

这个类不需要继承MonoBehaviour
声明三个变量
在这里插入图片描述
然后为物体添加audiosoure,并且将添加的audiosoure用列表存起来
在这里插入图片描述
当我们想要播放声音时,需要获得一个空闲的audiosoure所以我们要写个获得空audiosoure的方法
在这里插入图片描述
当然,如果一直生成产生大量的audiosoure,会降低性能,所以我们还需要一个销毁audiosoure的方法,使我们的性能得到优化

在这里插入图片描述
暂时这个类里面先写这些,一会儿我们还要回到这个类继续完善

ClipManager脚本的编写

这个类也不需要继承MonoBehaviour
播放声音的组件功能已经完善了,这时候却没有声音,所以我们要在这个脚本中对audiosoure里面的clip属性添加一些方法,以便我们能正确地播放声音

声明两个变量
在这里插入图片描述
如果你有很多(成千上百种声音需要播放)我们不能手动的拖拽,这样会大大降低开发成本,这里我使用读取文本地操作来简化开发
一:我们到Assets路径下
在这里插入图片描述
二:创建StreamingAssets文件夹(注意:必须是StreamingAssets文件夹,一个字母也不能差,因为我们要用到Application.streamingAssetsPath方法),关于这个方法要是不理解,可以去看看这个博客https://blog.csdn.net/BillCYJ/article/details/99712313 之后在文件夹内创建文本文件,回到vs中为文本添加音乐的名称和数量(注意:数量可以根据添加的音乐动态改变,这里为了简洁我并没有这样做)
在这里插入图片描述
我们回到ClipManager这个类当中,创建读取文本的方法
把读取的名字添加的我们之前声明的数组变量(musicName)中
这样我们就能快速的知道音乐的名称
在这里插入图片描述
有了这些名称后,我们要把路径下的音乐资源加载到内存中(这里使用Resources.Load<>,和之前的ApplicatiRon.streamingAssetsPath一样,这个方法同样需要创建一个Resources文件夹,然后需要把音乐文件都放在这个文件夹中)
在这里插入图片描述
之后为脚本添加加载代码
同时在构造函数中调用
(SingleClip类一会儿说明)
在这里插入图片描述
看样子一切都已经完成,让我们回到AudioManager脚本
我们创建一个Play()的方法来播放声音(我们要播放声音首先要调用之前的获得空闲的AudioSoure方法,这时虽然有了组件,但是声音却无法的到,这时我们就要继续为我们ClipManager类添加方法,通过名字来找到需要播放的声音)
首先创建一个新的类SingleManger来单独存放声音(audio Clip)
在这里插入图片描述
然后我们回到ClipManager声明变量
在这里插入图片描述
(这时再看看就应该能明白Load方法了)
在这里插入图片描述
回到AudioManager脚本完善Play()
在这里插入图片描述
同理写出Stop()方法
在这里插入图片描述
这样就大功告成了
然我们来到SoureManager脚本中
SoureManager脚本使用单例模式
在这里插入图片描述
最后让我们测试一下
为了方便修改音乐的名称我用了静态类存放
在这里插入图片描述
一下是测试结果
在这里插入图片描述
可以看到运行开始就为物体添加了3个AudioSoure组件
在这里插入图片描述
当我按下asd中的任何键都可以播放声音
当按下的按键次数大于3就会自动创建组件AudioSoure
在这里插入图片描述
当声音播放完毕组件就自动销毁了

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Unity中添加游戏音效,请按照以下步骤进行操作: 1.准备音效文件:您可以从互联网上下载或购买音效文件,或者使用自己的录音和编辑软件创建自己的音效文件。 2.将音效文件导入Unity项目:在项目中的“资源”面板中,右键单击并选择“导入新资产”选项。选择您的音效文件并单击“导入”。 3.创建音效对象:在“层次结构”面板中,右键单击并选择“创建空对象”选项。将其重命名为音效名称,并将其拖动到“层次结构”面板中。 4.将音效文件添加到音效对象:在“层次结构”面板中,选择音效对象。在“检查器”面板中,单击“添加组件”按钮并选择“音频源”选项。在“音频源”组件中,单击“音频剪辑”下拉菜单并选择您的音效文件。 5.调整音效设置:在“音频源”组件中,您可以调整音量、播放方式和循环等设置。您还可以使用“播放一次”或“循环”按钮测试音效。 6.将音效对象附加到游戏对象:在“层次结构”面板中,选择游戏对象并在“检查器”面板中添加“音频源”组件。将音效对象拖动到“音频源”组件的“音频源”字段中。 7.测试游戏音效:运行游戏并测试音效。您可以在需要时调整音效设置。 以上是在Unity中添加游戏音效的基本步骤。您可以使用更高级的技术和功能来进一步改进和优化您的游戏音效
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值