版本

menu_open
警告:系统已根据您所用大版本 (2023.1.8.8601) 自动跳转至最新文档。若想访问特定版本的文档,请从 Audiokinetic Launcher 下载离线文档,并在 Wwise 设计程序中勾选 Offline Documentation 选项。
Wwise Unity Integration Documentation
使用 C# 代码来控制声音引擎

大多数 Wwise SDK 函数可以通过 AkSoundEngine 类在 Unity 中使用。将它想象为 C++ 命名空间 AK::SoundEngine、AK::MusicEngine 等等的替代。想了解与原始 SDK 相比,API 绑定中所做的更改,请参考 API 限制 。 对于更复杂的情况,您需要从代码中调用 Wwise 函数。在 API 中,所有函数中的 GameObjectID 被Unity 风格的 GameObject 所替代。在运行时,这个 GameObject 中将自动添加一个 AkGameObj 组件,除非您之前已经手动添加过了。

对于 Event 和 Bank 使用数字 ID,而不是字符串。

原生 Wwise API 使用字符串或 ID 来触发 Wwise 工程中的事件和其它有名字的对象。您仍然可以在 C# 环境下这样做,方法是将文件 Wwise_IDs.h 转码为 Wwise_IDs.cs。点击 Assets > Wwise > Convert Wwise SoundBank IDs。为了完成上述操作,您需要安装 Python。

将 MIDI 发送到 Wwise

如需将 MIDI 发送到 Wwise,可为 AkMIDIPostArray 类的 AkMIDIPost 成员赋值,并调用以下任一方法:

以下是一个将 MIDI 消息发送到声音引擎的简单脚本:

在 Unity 中进行离线渲染

Unity 集成暴露了 Wwise SDK 中的离线渲染功能并简化了音频样本的检索方式。

注意: 务必确保在启用离线渲染时仅从主线程中异步调用 AkSoundEngine.LoadBankAkSoundEngine.UnloadBank API。有关详细信息,请参阅自由调度音频渲染任务章节。

AkSoundEngine.StartDeviceCapture 会设置用于捕获的特定输出音频设备,以便通过调用 AkSoundEngine.UpdateCaptureSampleCount 来确定可用样本数,并通过调用 AkSoundEngine.GetCaptureSamples 来检索音频样本数。

以下示例阐释了如何使用 Unity 集成来结合 Unity 的屏幕捕获功能执行离线音频渲染。在实现此功能后,可轻松执行多路复用后期处理步骤,并将捕获的音频样本和视频帧合并为电影文件。

在 Unity 中使用 Audio Input 源插件

您可以通过 C# 脚本来调用 Audio Input 源插件。请参阅 Audio Input Source Plug-in from the Wwise SDK documentation.

以下是一个将测试音发送到 Audio Input 源插件的简单脚本:

在 Unity 中应用自定义定位

在默认情况下,会将 AkGameObj 组件关联到特定的 Unity gameObject ,并使用其变换功能(可选偏置)进行全面定位。这对很多游戏(如第一人称射击游戏)来说基本上就够了。不过,对于采用自定义镜头角度的游戏(如各种第三人称游戏)来说,假如只是简单地将音频听者关联到单个游戏对象(如 Unity 中的主镜头),定位的距离衰减和空间化这两个方面可能会不好协调。其他游戏可能还要给玩家提供别的自定义定位体验。

为此,AkGameObj 组件类允许用户重写定位。通过 GetPosition()、 GetForward()GetUpward() 这三种虚方法,用户可选择继承 AkGameObj 的子类,并使用这些子类组件来灵活地自定义任意数量 Unity gameObject 的定位。

这里有一个简单的示例,展示了如何使用自定义组件来重写默认的 AkAudioListener 行为。对这个整合了 Wwise 的第三人称游戏项目,可移除现有的 AkAudioListener 及其关联的 AkGameObj 。然后,将以下脚本关联到 MainCamera 对象,并关联 AkAudioListener 。最后,指定音频听者位置所要跟随的目标 gameObject (如玩家角色)。如此一来,所有发声体的距离衰减都会将所选目标 Unity gameObject 的位置作为听者位置(画面内的距离听者),而所有发声体的朝向仍会将主镜头朝向作为听者朝向(画面外的朝向听者)。

Definition: AkWwiseAcousticTexture.cs:21
This type can be used to post Events to the sound engine.
Definition: AkWwiseEvent.cs:29
This component represents a sound object in your scene and tracks its position and other game syncs s...
Definition: AkGameObj.cs:32
Definition: AkWwiseAcousticTexture.cs:21
virtual UnityEngine.Vector3 GetPosition()
Definition: AkGameObj.cs:309

此页面对您是否有帮助?

需要技术支持?

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

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

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

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

开始 Wwise 之旅