版本

menu_open
Wwise Unity Integration Documentation
为 Wwise Events 添加新的 Trigger。

在大多数用于 Unity 的 Wwise 组件中,有一个 "Trigger On" 属性,从中您可以选择哪个 Unity 通知/事件将触发 Wwise 组件(Event、Switch、State 等)。这个列表只包含在 Unity 中可以做到的一部分。但是,触发系统是可扩展的,且不需要修改集成代码本身。

如果想添加一个新的触发器,您只需编写一个来自于 AkTriggerBase 的 C# 类。从 AkTriggerBase 派生的所有类都将通过反射找到,并添加到 "Trigger On" 下拉列表中。这个类包含一个委托,triggerDelegate(GameObject in_target),当触发器的条件发生时,您必须调用该委托。"目标" 对象是可选的,目前用于碰撞体场合下提供碰撞对象。这使得 Wwise 组件可以在“被撞对象”上发送事件,而不是在碰撞体上发送。

虽然这个系统完全是可选的,但您也可以使用这个系统来触发游戏代码中的音频组件。只要出现触发条件或关联有自定义函数,就可直接从代码调用 GetComponent<YourTriggerClass>().triggerDelegate(GameObject in_target) 。

备注:目前,AkTriggerBase 子类的最大数量是 32。

下面是一个含有自定义函数的示例:

public class TriggerOnGunHit : AkTriggerBase
{
void Hit()
{
if(triggerDelegate != null)
{
}
}
}

在您的游戏代码中,您可以加入这段代码:

if (playerIsShot)
{
GetComponent<TriggerOnGunHit>().Hit();
}

任何连接到 TriggerOnGunHit 触发器的 Wwise 组件就可以正常运行了。注意,在很多简单情况下,这种做法完全是多余的;除此之外,您也可以直接通过 AkSoundEngine.PostEvent("GunHit", gameObject) 来调用基础 Wwise SDK,然后让声音设计师在 Wwise 中处理此 Event 的效果。

Trigger triggerDelegate
All components reacting to the trigger will be registered in this delegate.
Definition: AkTriggerBase.cs:30
Base class for the generic triggering mechanism for Wwise Integration. All Wwise components will use ...
Definition: AkTriggerBase.cs:23

此页面对您是否有帮助?

需要技术支持?

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

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

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

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

开始 Wwise 之旅