版本
Wwise Unity Integration Documentation
|
APK 中包含的 Android 的 SoundBank 可以直接通过 LoadBank() API 访问。当构建 Unity 工程时,放置在 StreamingAssets
文件夹中的 SoundBank 会包含在该 APK 的 Assets
文件夹中。Low-Level IO 可以透明方式从 APK 访问 SoundBank。
Low-Level IO 也可以访问 Android 文件系统中的 SoundBank 文件,例如访问 SD 卡中的文件。若要访问原生文件系统,需调用 AkUnitySoundEngine.AddBasePath(YourPath)
。这条新路径在优先级上高于默认的 APK 文件。如果一个文件在外部路径和 APK 中具有相同的名称,那么将使用外部路径。若在构建 APK 后向音频内容添加 DLC 或补丁,实现对外部文件的访问可能会很有用。
在将应用程序转到后台时,建议调用 AkUnitySoundEngine.Suspend()
。在应用程序返回前台时,使用 AkUnitySoundEngine.WakeupFromSuspend()
来恢复声音。目前,这是在 AkInitializer 中实现的,但是如果合理的话,您可以将它移动到游戏的其它部分。
Wwise 设计工具设有用于将 Audio Bus 上的背景音乐静音的选项。You can use this option to mute game music when a player's music starts (refer to Replacing music with a player's own music). 不过,若在启用此选项的同时在 Android 上启用 Unity Audio,会一直将通过总线发送的音乐静音。
为此,必须决定是使用 Wwise 设置将背景音乐静音还是启用 Unity Audio,因为两者相互之间是不兼容的。
对于 Android 平台,当检查 Unity 选项 Player Settings > Publishing Settings > Split Application Binary 时,APK Expansion Files 用于封装工程素材。这样就有效地创建了一个有 .obb 扩展的 zip 文件,它包含 StreamingAssets 文件夹,里面包含 SoundBank。默认的 Android SoundBank 加载支持假定了 SoundBank 位于 APK 文件或 OBB 文件中。
如果您正在外部构造自己的 OBB 文件,请注意,给 AkUnitySoundEngine.SetBasePath 的内部路径必须和 OBB 中的相同。OBB 文件必须是未压缩和未加密的,这样默认的 I/O 系统才能正常工作。如果不满足上述条件,则需要在持久数据路径中解压 OBB。用于解压缩的 CPU 成本太高,所以无法实时解压缩。
或者,可以使用内存内(in-memory)加载 bank。在 AkMemBankLoader.cs 中提供了一个示例。此脚本尝试在场景开始时加载指定的 SoundBank,并在场景被销毁时将其卸载。要使用这个示例,需要进行以下更改:
Is
Localized
Bank
选项。它将使用在 AkInitializer.cs
中定义的全局语言。两个方法 AkMemBankLoader.LoadNonLocalizedBank()
和 AkMemBankLoader。对于非本地化和本地化的
SoundBank,也可以直接在代码中调用 LoadLocalizedBank()。