故障排除
- 安装后的编译错误
- 在 Unity 控制台中的 DllNotFoundException
- 没有任何声音
- 无法连接 Wwise Profiler
- 安装过程中的错误 —— 在 Unity 控制台中访问路径被拒绝
- 在用于 Mac 的 Wwise 上,在生成 SoundBank 过程中出现错误 —— 不能写入 Wwise_IDs.h
- 错误:插件没有注册
- 在 Mac 的 Unity Console 中,"多个插件的名称相同"
- 使用 Xbox One 插件时,"初始化声音引擎失败"
安装后的编译错误
如果刚从以前的 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 中,
background
设置中的Run
已经启用(menu
File > Build Settings > Player Settings)。 - 验证您机器上的防火墙允许端口 24024,以及 Wwise 设置为一个特例。如果防火墙被禁用了,那么就不是这个问题了。
- 您正在运行 Wwise-Unity Plug-in 的哪个配置?只有
Debug
和Profile
启用了通信代码。 - 打开 Task Manager,杀死任何名为 "adb.exe" 的进程。这是 Android 驱动程序,它锁定 TCP 端口。即使您开发的不是 Android 系统或连接了任何 Android 设备,这都是一定的。(这是 Google 的问题。)
如果您的游戏在另一台计算机或控制台上运行,请检查以下内容:
- 您的 Wwise 电脑和游戏机在同一子网上吗?如果没有,游戏将不会出现在 Remote Connection 对话框中。手动输入 IP,和
Connect
To
IP
按钮。 - 您的网络允许端口 24024 上的 traffic 或动态端口分配吗?
安装过程中的错误 —— 在 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 配置(
Debug,
Profile,
Release)。
unity_wwiseids_error 在用于 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 Thu Feb 1 09:40:31 2018 for Wwise Unity Integration by 1.6.3