[音频管理]

一.综述

Unity自带的音频总的来说就是通过AudioSource来播放AudioClip,通过AudioListener监听,然后这几个组件有很多参数来进行调整

二.音频管理

1.StreamingAssets文件夹

和Assets目录下的Resources文件夹类似,用来存储资源,不同的是,Resources文件夹下的资源真正发布后会被压缩和加密,而StreamingAssets是可以即使在移动设备上也可以通过路径直接获取到原生资源的, StreamingAssets 只能用过www类来读取。

2.音频管理数据组织结构

Private Dictionary _Bnks;

配置:

EventName作为音频的唯一标识, BankName作为音频所在压缩文件的标识,每次播放音频检查所在bank是否已经加载,未加载就进行加载,对每个Bank声明一个RefCount计数,切场景的时候将引用计数为0的Bank卸载。

这里其实可以进行一个优化,可以维护一个常用的Bank的列表,毕竟很多音效切场景后的引用频率也会很高,这些可以不进行卸载,这样可以提高效率。

调用:

1.SoundManager处理和游戏逻辑相关的一些设定,比如音效的全局控制,音量,背景乐等等

2.WwiseManager作为客户端调用的SoundManager和Wwise引擎的中间适配器,处理和音频资源相关的逻辑,如通过eventname调用声音播放,bank缓存,资源加载,卸载等

3.客户端->SoundManager.PlayClip->Wwise.PostEvent->AkSoundEngine.PostEvent(,回调),回调中要返回调用信息(是否调用成功等等)

你可能感兴趣的:([音频管理])