首页 > 编程知识 正文

Unity的声音 AudioSource 和 AudioListener

时间:2023-05-03 10:53:48 阅读:279679 作者:3349

Unity的声音 —— AudioSource 和 AudioListener AudioSource

AudioSourceUnity 中的 Audio 组件,其主要用来播放游戏场景中的 AudioClipAudioClip 就是导入到 Unity 中的声音文件。Unity 可导入的音频文件格式有 .aif.wav.mp3.ogg。此外,Audio Source 还可以设置一些播放声音的效果,增强游戏场景中的声音效果。

AudioListener

AudioListener 是游戏中的声音接收器,一般位于 Main Camera 游戏对象上,它可以接收游戏中的所有音乐和音效(只要其所附加的游戏物体在音效的影响范围内),此外,每一个 Scene 中仅有一个 Audio Listener

应用示例

接下来制作一个小 Demo 来展示下这两个组件的简单用法。

获取声音资源

首先从网上下载一段 .wav 格式声音文件,然后将其导入到新建的Unity项目中自己创建的 AudioClips 文件夹中,将其命名为 Bgmusic。在 Assets 面板中单击选中 Bgmusic 文件可以在 Inspector 面板中查看其相关的设置,并且在 Inspector 面板的最下方可预览声音文件。

添加AudioSource组件

在游戏场景中新建一个 GameObject 并将其命名为 AudioSourceObj,然后为其添加 AudioSource 组件,添加路径:首先选中 AudioSourceObj 游戏对象,然后在 Inspector 面板下方点击 Add Component -> Audio -> Audio Source

设置AudioSource组件

Assets/AudioClips 文件夹下的 Bgmusic 声音文件通过拖拽的方式赋值为 AudioSource 组件的 AudioClip 属性。然后取消 Play On Awake 属性(在场景加载后播放 AudioClip)的勾选,其他属性保持默认设置。

设置UI布局

添加三个 Button 对象和一个 Text 对象,分别命名为 ButtonPlay、ButtonStop、ButtonMute,DisplayText。其具体作用为:

ButtonPlay:点击播放音乐。 ButtonStop:点击停止播放音乐。 ButtonMute:点击处于静音状态,ButtonStop、ButtonStop 按钮处于禁用状态,再次点击开启静音并恢复点击前的状态。DisplayText:用于展示当前状态。
编写脚本

新建一个 SoundPlayer 脚本并将其添加到 AudioSourceObj 游戏对象上,然后在Visual Studio 中进行编辑。
首先加入 UI 的名称空间。然后定义相关变量并在 Start 方法中获取其值。

编写用于 ButtonPlay 按钮点击事件的 playAudio 方法。

编写用于 ButtonStop 按钮点击事件的 stopAudio 方法。

编写用于 ButtonMute 按钮点击事件的 muteAudio 方法。

最后,在 Update 方法中实时对按钮们的状态进行界面化显示。

结束语

其实AudioSourceAudioListener 在游戏场景中的关系就是:一个用于播放声音,一个用于听(listen)声音,一个场景中只有一个 AudioListener 也很好理解,因为对于游戏来说一个客户端只针对一个玩家,所以一个玩家拥有一个 Listener 才符合实际。但是声音可以是多种多样的,所以 AudioSource 组件上可以有多个并且可设置声音的相关属性。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。