版本
menu_open
Wwise SDK 2023.1.2
定义 C++ 工程设置

C++14 编译器要求

Wwise SDK 头文件需要有效的 C++14 或更高版本的编译器。确保所用编译器能够解析 C++14 代码。如需查看支持的编译器列表,请参阅 平台要求 章节。

Release 配置设置

出于优化目的,工程的 Release 配置与开发配置的要求略有不同。

定义 AK_OPTIMIZED 符号

您必须在工程的 Release 配置中定义 AK_OPTIMIZED 符号(在用于构建游戏零售版的配置中可命名为 Ship、Retail 等)。

此符号会用在各个地方以避免不必要地编译 Release 版本中的代码。

弃用通信代码

Wwise 声音引擎支持在 Wwise 和游戏之间进行通信,Wwise 用户可藉此来执行游戏内混音和性能分析。然而在 Release 配置中,出于性能方面的原因,不提供此通信。

若在游戏中启用通信功能,请在代码前后添加 #ifndef AK_OPTIMIZED / #endif 以在 Release 版本的游戏中弃用。

有关 Windows 的特定注意事项

本节中的建议和要求仅适用于 Windows 上的开发。

使用 wchar_t

若调用一个或多个使用 wchar_t 类型的 Wwise 声音引擎函数,则需在工程设置中启用 Treat wchar_t as Built-in type 选项,以确保正确链接到声音引擎库。为此,转至 Configuration Properties > C/C++ > Language,并将“Treat wchar_t as Built-in Type”设置为“Yes”。此操作将设置编译标记。

然而,如果您不调用声音引擎中使用 wchar_t 类型的任一函数,则不需要加这个设置。注意,所有这些函数都有使用 char 类型的对应函数。

若调用使用 wchar_t 的函数但未在工程中启用 Treat wchar_t as Built-in Type 设置,将收到类似于下面的链接错误:存在未处理的外部符号 "enum AKRESULT __cdecl AK::SoundEngine::LoadBank(unsigned short const *,long,unsigned long &)",因为编译器错误地将函数 AK::SoundEngine::LoadBank(const wchar_t *,long,unsigned long &) 解释为了 AK::SoundEngine::LoadBank(unsigned short const *,long,unsigned long &)。

警告: 我们建议您在工程中启用“Treat wchar_t as Built-in Type”设置。如果您不想启用它,请阅读下文。

您需要特别注意 AkOSChar 类型,在有些平台上其会被替换成 wchar_t。此类型与涉及磁盘 I/O 的方法一起使用。More specifically, it is used by the Stream Manager (AK::IAkStreamMgr) and Low-Level I/O (AK::StreamMgr::IAkLowLevelIOHook) interfaces.

若 Audiokinetic 的默认 Stream Manager 在游戏当中始终用作 I/O 管理器,则在 AkOSChar 被替换成 wchar_t 的平台上必须启用 Treat wchar_t as Built-in Type 设置。但是 Wwise 声音引擎通常是 Stream Manager 的唯一客户端。在此类情况下,没有必要在您的工程中启用“Treat wchar_t as Built-in Type”设置。

Treat wchar_t as Built-in Type 设置不会对 Low-Level I/O API 造成问题,因为一般情况下不会调用它而会实现它。

注意,在 AkOSChar 被替换成 wchar_t 时,File Package Low-Level I/O 示例(参见 文件包底层 I/O 实现 章节)会调用声音引擎中使用 wchar_t 类型的一些方法。若要在工程中使用此示例而不启用 Treat wchar_t as Built-in Type 设置,则须对其进行部分修改以在必要时将 wchar_t 字符串转换为 char 字符串。对此,可使用 AKPLATFORM::AkWideCharToChar() 辅助函数来实现。它定义于 AK/Tools/Common/AkPlatformFuncs.h

有关如何集成 Wwise I/O 的详细信息,请参阅 流播放/流管理器 章节。

单一 DLL 要求

在 Windows 游戏中,如果您使用 DLL 包装与 Wwise 声音引擎相关的一切内容,例如示例 AkSoundEngineDLL 工程(见下文),您需要在依赖它的工程中定义 AKSOUNDENGINE_DLL(游戏可执行文件或者另一 DLL),以正确地导入声音引擎 API 的符号。

与 Wwise 声音引擎库静态链接的工程不得定义 AKSOUNDENGINE_DLL。

AkSoundEngineDLL 示例工程

此声音引擎集成纵览引导您逐步了解基本集成,包括多个模块各自的初始化和处理。如果您喜欢使用 DLL 工程示例,SDK 中就包含一个此示例。AkSoundEngineDLL 工程将某些集成任务打包到高级调用,例如“Initialize”和“Terminate”。本例中没有使用,因此您可以单独查看各个步骤,但您可以在游戏中使用 DLL 或它的修改版本。请参阅 AkCube 声音引擎集成工程示例 查看如何使用该 DLL 的示例。

备注: 必须安装 Visual Studio 2017 安装包,才能在 Windows 上使用 AkSoundEngineDLL。


注意,AkSoundEngineDLL 工程中还包含Low-Level I/O(底层 I/O)的实现,如果需要,您可以自己替换它。有关底层 I/O 的更多信息,请参阅 Low-Level I/O


此页面对您是否有帮助?

需要技术支持?

仍有疑问?或者问题?需要更多信息?欢迎联系我们,我们可以提供帮助!

查看我们的“技术支持”页面

介绍一下自己的项目。我们会竭力为您提供帮助。

来注册自己的项目,我们帮您快速入门,不带任何附加条件!

开始 Wwise 之旅