【Wwise】一篇文看懂Wwise&Unity热更

1、首先明确2个API:

AkSoundEngine.SetBasePath()

AkSoundEngine.AddBasePath()

 

AkSoundEngine.SetBasePath()接口,用于指定基础得bank所在路径,也就是游戏第一次上线所包含得所有初始bank得路径。该路径为Application.streamingAssetsPath

(WIN平台下为unity工程路径下Assets/StreamingAssets

安卓平台下为:jar:file:///data/app/com.ZZ.TestHotfix/base.apk!/assets

ios平台下为:Application/***.app/Data/Raw)

 

也就是说安卓平台下的baseBank路径为:

jar:file:///data/app/com.ZZ.TestHotfix/base.apk!/assets/Audio/GeneratedSoundBanks/Android/**.bnk

  

AkSoundEngine.AddBasePath()接口,用于指定后续热更的bank所在得路径,该路径为Application.persistentDataPath

WIN平台下为:C:/Users/yourname/AppData/LocalLow/ZZ/Hotfix;

安卓平台下为:/storage/emulate/0/Android/data/com.ZZ.TestHotfix/files;

ios平台下:Application/app sandbox/Documents

 

2、其次明确3个路径:

Application.streamingAssetsPath

Application.persistentDataPath

AkBasePathGetter.DecodedBankFullPath;

 

streamingAssetsPath路径特性:

  1. 该路径下得所有资源全部打包进apk或者ipa内,且不经过压缩,也就是说你得bank和.mem流媒体文件一共多大,那么上线得apk或ipa文件就会增加多大。也就是说所有得初始bank都是打进apk或ipa内的!
  2. 是一个只读(read-only)得路径,游戏运行时只能读取,不能修改。
  3. 有的游戏所有的资源全部使用assetbundle,会把一些初始的assetbundle放在StreamingAssets目录下,运行程序的时候在把这些assetbundle拷贝在Application.persistentDataPath目录下,后续若这些assetbundle资源有热更的需求,直接把下载的最新的assetbundle把Application.persistentDataPath目录下旧的资源覆盖掉。

 

persistentDataPath路径特性:

  1. 可读,可写,是游戏的沙盒目录,所以打包之前是没有这个目录的,直到游戏在手机上安装完成,才会有这个目录
  2.  

DecodedBankFullPath:

       1、位于persistentDataPath下面一层DecodedBanks目录下,是解码之后的bank所存放的路径

 

3、热更原理

1、将新增或更新过的同名bnk解压在persistentDataPath路径内即可。

2Wwise会从AddBasePath()SetBasePath()的方向查找bnk

 

4、测试结果如下:

 

5、关于PCK文件包:

2020.12.11更新下pck相关的东西:

1、PCK只是一种把大量离散的bnk和media收拢到少量pck中统一管理的方式,优点是文件数量少,看起来不会密集恐惧??hh

2、需要注意的是,假如同一个bnk分别在某pck内外都存在一份,那么wwise会优先读取pck中得bnk。pck没了,才会读取pck文件包外得bnk

3、与不通过pck管理资源的方式相比,只不过是在加载bnk之前多了一步记载pck,wwise提供有LoadFilePackage的api接口。

4、需要注意的是,LoadFilePackage的api接口中,传入的pck文件名字需要加入“.pck”后缀

 

如有不足,欢迎指正。

评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值