Wwise-Unity 集成是一层很薄的从 C# 调用原生 Wwise API 的调用层。它自带对所有平台的支持。大多数情况下,没有必要重新构建集成插件。但是,如果有源代码,您可能想对它自定义,以便将自定义更改集成到原生声音引擎中,或者修改与声音引擎接口的 C++ 代码。这应该交给有 C++ 知识的程序员来完成。
步骤
- 使用 Audiokinetic Launcher 为您希望构建的平台安装 Wwise SDK。请确保先登出并再次登录。
- 找到您正在使用的操作系统( Windows 或 Mac )的源码压缩包。在您添加 Wwise 集成时,Launcher 将源码压缩包安装在您的 Unity 工程中(压缩包后缀为_Src.zip)。
- 找到您希望构建的平台的源码压缩包(如果该平台与 Windows 或 Mac 不同)。
- 验证构建集成的先决条件。请参阅 要求 了解更多详情。
- 解压缩所有源码压缩包 到同一文件夹中。请参阅 在 Unity 工程中安装或升级集成 了解更多详情。
- 使用以下两种方法之一启动构建过程: 使用控制台工具来构建 或者 使用 Integrated Development Environment (IDE) 来构建 。
- 等待构建完毕。如果构建成功,那么在
API/Runtime/Plugin
文件夹中的插件和 API 绑定将会更新,如果它们之前不存在,则将会被创建。
备注
- 在构建过程中,您可以监控警告、错误或关键消息,方法是阅读 构建日志 中的详细日志消息。
构建集成的必要条件:
平台 | 需要的组件 |
所有平台 |
|
Android |
-
Android SDK: Minimum API 19 for 32 bits, Minimum API 21 for 64 bits.
-
Android NDK r25.
-
CMake: 3.16
-
Ninja: 1.12
-
The path to the Wwise SDK should not contain any white spaces.
-
Unity 工程根目录的完整路径不能包含 任何空格。
-
环境变量:
-
ANDROID_HOME 应该指向 Android SDK 根文件夹。
-
ANDROID_NDK_HOME 应该指向 Android NDK 根文件夹。
-
NDKROOT 应该指向 Android NDK 根文件夹。
|
iOS |
-
Xcode 14 or above.
-
The Wwise SDK for iOS, and a
WWISESDK environment variable pointing to it
|
Linux |
-
Build-essential (
sudo apt-get install build-essential )
-
The Wwise SDK for Linux, and a
WWISESDK environment variable pointing to it
|
Mac |
-
Xcode 14 or above.
-
The Wwise SDK for Mac, and a
WWISESDK environment variable pointing to it
|
PS4 | Visual Studio 2019 or above. |
Windows | Visual Studio 2019 or above. |
Windows Store | Visual Studio 2019 or above. |
Xbox One | Visual Studio 2019 or above. |
如何安装源码包
解压源码包。然后,您可以使用源码包和针对安装好的目标平台 Wwise SDK 来重新构建和生成集成的内容。根据情况,您可以在 Unity 项目的 Assets 文件夹中,将 Wwise 文件夹中的解压缩内容与导入的 Unity 集成包(.unitypackage)合并在一起。但是,这样做的话,可能会在 Assets 文件夹中生成不需要的中间文件,这些文件需要手动清除。
安装好的集成包文件夹结构
- StreamingAssets: 文件夹,用于自动的 SoundBank 部署。
- Wwise:顶层文件夹。
- API:您的应用程序中使用的主要集成文件。
- Runtime:C++ 到 C# 的绑定文件。这是原生 Wwise SDK 的翻译。
- Editor:仅与 Editor 有关的 API 内容。
- Plug-ins:含有各种配置的 Unity 插件库及其调试符号数据库。
- Platform
- Architecture:由多体系结构平台的体系结构所共享的文件。
- Debug:插件二进制库的
Debug
版本。请参阅 Wwise 插件部署 了解更多详情。
- Profile:插件二进制库的
Profile
版本。请参阅 Wwise 插件部署 了解更多详情。
- Release:插件二进制库的
Release
版本。请参阅 Wwise 插件部署 了解更多详情。
- DSP:Wwise 效果器和源插件。
- MonoBehaviour:可以直接使用的 Unity 组件脚本,并可作为自定义组件的示例。
- 文档:集成的全部用户文档。
安装好的源码包文件夹结构
- Wwise:顶层文件夹。
- AkSoundEngine:构建集成所需的源代码和 IDE 工程,按各个平台来组织的。
- Common:所有平台共用的源代码和构建脚本。
- Platform:用于目标平台的 IDE 解决方案或工程、源代码和平台特定的构建脚本。
- Integration/Assets/Wwise/API:用于您的应用程序的主要集成文件。
- Runtime:API 绑定的根文件夹。
- Generated:在 SWIG 绑定步骤中生成的 API 绑定文件。
- Handwritten:手写的 API 绑定文件。
- MonoBehaviour:可以直接使用的出厂 Unity 组件脚本,并可作为自定义组件的示例。
使用控制台工具来构建
您可以使用构建脚本从命令行来构建集成,构建脚本可以在 Wwise\AkSoundEngine\Common\BuildWwiseUnityIntegration.py
找到。这对于持续集成很有用。如果您要查看使用和示例,假设当前的工作文件夹是脚本的父文件夹,那么请在计算机的命令控制台中输入:
python BuildWwiseUnityIntegration.py -h
使用 Integrated Development Environment (IDE) 来构建
在 Wwise Unity Integration 源码包中位于:
WwiseUnityIntegration_version_platform_Src.zip\Wwise\AkSoundEngine\YourPlatform
解决方案(或 Xcode 工程)可以让您在受支持的 IDE 中构建目标平台的集成。
用 Xcode 为 Mac 或 iOS 平台构建
当从命令行构建集成时, WWISESDK
路径会根据两个设置中的一个来自动提供给 Xcode,其中一个是环境变量 $WWISESDK
中的某个设置,另外一个是使用 -w
选项提供给构建脚本的设置。但是,在使用 Xcode IDE 时,必须手动设置 WWISESDK 路径。为此,请打开 Mac 或 iOS 平台的 Xcode 工程,在工程导航器中选择 AkSoundEngine{platform} 工程。选择 Build Settings 页。在页面的底部,显示了有着 WWISESDK
设置键的 User-Defined 区域。把 WWISESDK
的路径填到设置中,以构建集成(ex: /Users/myUser/Wwise/SDK )。
为 Linux 平台构建
提供了通过 premake5 生成的 makefile。要从源代码中构建 Linux 插件,只需将以下命令输入到终端中:
cd <Integration source location>/AkUnitySoundEngine/Linux
make config=<config>
其中, <config> 可以是 debug_x64
、profile_x64
、 或者 release_x64
。所生成的插件将位于 <Integration source location>/API/Runtime/Plugins/Linux
。
部署新的库
所得到的二进制文件将位于 Wwise\API\Runtime\Plugins\[Platform]。如果您还没有解压 Assets\Wwise 文件夹中的源代码,那么请将新二进制文件从该文件夹中复制到您工程的 Assets 文件夹的相应文件夹中。
底层细节
在打包用于构建集成代码的源代码之前,我们使用 SWIG 在 Wwise SDK 的 Unity 中生成 API 绑定。 大多数用户永远不需要用到 SWIG 来在 Unity 中使用 Wwise。即使是那些可以访问 Wwise for Unity 源代码的高级用户,如果想用这些源代码来构建集成代码(包含转码的 API),也不需要安装或使用 SWIG。惟二的例外是,将更改集成到声音引擎,或修改与之接口的 C++ 代码。在这些罕见的情况下,我们建议在您继续之前,先联系客户支持。
构建流程会执行以下任务:
- Wwise SDK 库被封装到一个单独的库作为 Unity 插件:Windows 上的动态库(.dll)、在 Mac OS X 上的可加载包(.bundle)、在 iOS 上的静态库(.a)或在 Android 上的共享库(.so)。它们将被直接构建到 Deployment 文件夹中。想了解文件夹结构,请参阅 在 Unity 工程中安装或升级集成 。
- 参见
-