目录

故障排除

Wwise Components/Types 显示的数据过时或不一致

若发现 Wwise Components(如 AkAmbientAkState)丢失对 Wwise 对象的引用,则表示您可能将 AkWwiseProjectData.asset 添加到了版本控制系统中。若 AkWwiseProjectData.asset 被锁定(在将其添加到版本控制系统中时经常会出现此问题),则将按照 AkWwiseProjectData##.asset 形式创建新的文件。若出现这种情况,请将其全部删除,然后在 Wwise Picker 中单击 Auto populate,以便重新生成文件。

Note.gif
备注: 请不要将 AkWwiseProjectData.asset添加到版本控制系统中! 它只是 Wwise 工程数据的临时缓存文件,目的在于避免 Wwise Picker 反复解析 Work Unit 文件。

安装后的编译错误

如果刚从以前的 Wwise 版本升级到了新版本,那么您可能会有重复的脚本。在版本 2013.2.8 中,UNITY_PROJECT_ROOT\Assets\Wwise\Deployment\Examples 文件夹重命名为 Components。如果您没有对 Examples 文件夹中的脚本作出任何更改,那么只需要删除它。

另外,如果您是在多个平台上开发,请确保已经为每个开发平台安装了 UnityPackage。有一些脚本是特定于平台的。

在 Unity 控制台中的 DllNotFoundException

如果您在 Windows 的 Unity 控制台中看到一个关于 AkSoundEngine 的 DllNotFoundException 消息,这可能是由两个缺失的依赖项引起的:

  • 确保您的机器上安装了DirectX。
  • 如果您正在使用 Wwise-Unity Integration 的 Debug config,那么还需要安装Microsoft Visual Studio 2010 Debug Redistributables。通常情况下,默认会安装 Profile 配置,所以这应该不是问题,除非您时手动安装的 Debug config。

没有任何声音

如果您在游戏中没有听到任何声音,请检查以下内容:

  • 如果在单机上运行游戏时没有声音,请试着在 Windows 或 Mac 的 Editor 中运行您的游戏。先在编辑器中解决问题会比较容易。
  • 确保您的 SoundBank 已经正确地生成了,并且 Unity 能够找到它们。如果您在编辑器中运行该游戏,那么集成将从 Wwise 工程中的 Generated SoundBanks 路径中寻找 SoundBank。如果没有找到,它接下来将会查看 StreamingAssets 文件夹。注意,如果您选择在 Wwise 中不沿用工程 SoundBank 路径,那么集成将无法自动加载它们。想了解关于该问题的更多信息,请参阅 为目标平台构建您的 Unity 游戏
  • 确保在发出任何其它音频调用之前,Sound Engine 已经正确地初始化了,并在所有引擎调用完成后,Sound Engine 终止了。您需要确保 Script Execution Order(menu Edit > Project Settings > Script Execution Order)已经为 AkInitializer 和 AkTerminator 正确地设置好了。
  • Unity 控制台报告了错误吗?修复它们......
  • 如果在运行游戏时连接到 Wwise Profiler(在 Wwise 中是 F7),那么在 Capture Log 中有错误报告吗?
  • 在 Wwise Profiler 的 SoundBank 选项卡中,您可以看到加载的库吗?如果看不到选项卡,打开 Profiling Settings(Alt-G)并启用 SoundBank。如果它们没有装载,应该检查您何时以及如何装载它们。查找 AkBank 组件和 AkSoundEngine.LoadBank 调用。
  • 在 Wwise Profiler 中,在 Capture Log 中,您可以看到预期要发布的 Event 吗?如果没有,您应该检查 SoundBank 是否包含这些 Event,以及它们是否正确加载了(请参阅前面的要点)。如果库已经被加载了,那么应该检查您游戏脚本中的 AkEvent,AkAmbient 组件和 AkSoundEngine.PostEvent 调用。

无法连接 Wwise Profiler

如果您的游戏运行在 Windows 上,请检查以下内容:

  • 验证 Unity 中, Run in background 设置已经启用(menu File > Build Settings > Player Settings)。
  • 验证您机器上的防火墙允许端口 24024,以及 Wwise 设置为一个特例。如果防火墙被禁用了,那么就不是这个问题了。
  • 您正在运行 Wwise-Unity Plug-in 的哪个配置?只有 DebugProfile 启用了通信代码。
  • 打开 Task Manager,杀死任何名为 "adb.exe" 的进程。这是 Android 驱动程序,它锁定 TCP 端口。即使您开发的不是 Android 系统或连接了任何 Android 设备,这都是一定的。(这是 Google 的问题。)

如果您的游戏在另一台计算机或控制台上运行,请检查以下内容:

  • 您的 Wwise 电脑和游戏机在同一子网上吗?如果没有,游戏将不会出现在 Remote Connection 对话框中。手动输入 IP,和 Connect To IP 按钮。
  • 您的网络允许端口 24024 上的 traffic 或动态端口分配吗?
  • 在 Xbox One 上,需要更改应用程序的 appmanifest.xml 文件。在 Xbox One 播放器的设置中,在 Configured Sockets 部分,确保定义了三个 Wwise 网络 socket。如果没有定义,请选择 Assets > Wwise > Xbox One > Enable Network Sockets

安装过程中的错误 —— 在 Unity 控制台中访问路径被拒绝

如果您在 Unity 控制台中看到 Wwise: Error during installation: Access to the path is denied 消息,请检查以下内容:

  • 您是否立即尝试过从 Assets > Wwise > Install Plugins 菜单安装一个新的插件配置(Debug,Profile,Release): Wwise Setup 窗口安装新的 Unity Integration?
    • 在 Unity Editor 中预览一个 Scene?
  • 立即重新打开您的 Unity 工程并安装新的 Plug-in 配置( DebugProfileRelease )。

在用于 Mac 的 Wwise 上,在生成 SoundBank 过程中出现错误 —— 不能写入 Wwise_IDs.h

如果在使用用于 Mac 的 Wwise,在生成 SoundBank 过程中您看到一个错误,即不能写入 Wwise_IDs.h,那么检查如下内容:

  • 打开 Wwise 工程。
  • 在工程设置中,前往 SoundBanks 选项卡。
  • Header file path 设置到 SoundBank 生成的地方。

错误:插件没有注册

您的 Wwise 工程使用了一个需要授权的插件,而它还没有包含在您的 AkSoundEngine 动态库中。请参阅 添加插件

在 Mac 的 Unity Console 中,"多个插件的名称相同"

使用用于 Mac 的 Unity,在导入 Integration 时,Unity Console 可能会显示很多如下的错误:

Multiple plug-ins with the same name 'aksoundengine' (found at 'Assets/Wwise/Deployment/Plugins/Mac/Release/AkSoundEngine.bundle' and 'Assets/Wwise/Deployment/Plugins/Mac/Debug/AkSoundEngine.bundle'). 这意味着一个或多个插件将设置为与 Editor 兼容。Editor 一次只能使用一个插件。

这些错误可以被忽略,这很安全,因为安装过程将正确地激活正确的插件。

使用 Xbox One 插件时,"初始化声音引擎失败"

在 Xbox One 上,Unity 内置的音频系统初始化了音频所需的硬件,因此 Wwise 的初始化失败了。要解决这个问题的话,可以禁用内置音频,方法是前往 Assets > Project Settings > Audio,选择 "Disable audio" 复选框。

注意,由于一个已知的 Unity 5.0.2 的问题,即使启用了 "Disable audio" 复选框,音频硬件也会被初始化。一个解决方法是,在 AkInitializer.cs 中,将以下代码:

    AkPlatformInitSettings platformSettings = new AkPlatformInitSettings();
    AkSoundEngine.GetDefaultPlatformInitSettings(platformSettings);
    platformSettings.uLEngineDefaultPoolSize = (uint)lowerPoolSize * 1024;
    platformSettings.fLEngineDefaultPoolRatioThreshold = memoryCutoffThreshold;

更改为:

    AkPlatformInitSettings platformSettings = new AkPlatformInitSettings();
    AkSoundEngine.GetDefaultPlatformInitSettings(platformSettings);
    platformSettings.uLEngineDefaultPoolSize = (uint)lowerPoolSize * 1024;
    platformSettings.fLEngineDefaultPoolRatioThreshold = memoryCutoffThreshold;
#if UNITY_XBOXONE && !UNITY_EDITOR
        platformSettings.uMaxXMAVoices = 0;
#endif

注意,这样更改之后,将禁用 XMA 插件。

Generated at Fri Mar 29 16:14:38 2019 for Wwise Unity Integration by  doxygen 1.6.3