用 Wwise 和 Unity 制作 DLC 使用 Wwise 文件包(File Package)

用 Wwise 和 Unity 制作 DLC

使用 Wwise 文件包(File Package)

https://documentation.help/wwise-unity-zh/pg__unity__dlc.html

使用 Wwise 支持 DLC 的默认方法是使用文件包。Authoring 文档中对该方法有部分解释:Wwise Help > 完善工程 > 管理 File Package > 可下载内容(DLC)概述。简单来说,这些包可以包含替换的 BNK 和 WEM 或者附加文件,它们可以随意加载和卸载来启用或禁用 DLC。这个包的格式是可选的,但是它现在内置在 Wwise / Unity 插件中。如果您想编写自己的包格式,则需要编写新的 Low-Level IO 来替换默认的。

要在 Unity 中使用包,您只需将它们放置在 Base Path 中,即您 bank 的所在路径,该路径是在 AkInitializer 的属性中定义的。然后调用 AkSoundEngine.LoadFilePackage()。Wwise 将始终尝试先通过文件包加载文件,加载的顺序是以相反的顺序(最后添加的是第一个搜索到的)。

该方法将适用于在游戏发布之后,所有支持向磁盘写入 Base Path 的平台。遗憾的是,iOS 和 Android 不满足这个条件。

在 Android 和 iOS 上,由于所有数据都被打包到一个只读文件系统,所以需要将您的文件包放在另一个不同的目录中。这是通过在 AkSoundEngine.LoadFilePackage() 之前调用 AkSoundEngine.AddBasePath() 来完成的。您可以添加多条路径,最后添加的将首先搜索。请查看恰当的操作系统文档,以找出有哪些限制。下面的代码是一则例程,用于选择可存储您文件的路径:

#if UNITY_IPHONE            
    string fileNameBase = Application.dataPath.Substring(0, Application.dataPath.LastIndexOf('/'));
    fileName = fileNameBase.Substring(0, fileNameBase.LastIndexOf('/')) + "/Documents/" + FILE_NAME;
#elif UNITY_ANDROID
    fileName = Application.persistentDataPath + "/" + FILE_NAME ;
#else
    fileName = Application.dataPath + "/" + FILE_NAME;
#endif

注意,在 Android 上还有其它一些可写的路径,比如 SD 卡或类似的存储设备。

参见:

来自 Unity WWW 服务的流媒体

还可以使用 Unity 的 WWW 类来获取您的 DLC 音频文件并直接加载它们。这是通过在内存中加载 bank 来完成的,就像在 AkMemBankLoader.cs 中演示的那样。如果您要用新的 bank 取代现有的 bank,必须先正确卸载以前的 bank;Wwise IO 系统不会理解那段代码,所以它不知道您是错误地重新加载了同一个库,还是想要替换它。


 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值