版本
menu

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 组件就可以正常运行了。Note that in many simple situations, this is completely superfluous; you could also simply call the base Wwise SDK through AkSoundEngine.PostEvent("GunHit", gameObject) and let the sound designer handle the effect of this Event in Wwise.

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 之旅