Version
In most of Wwise components for Unity, there is a "Trigger On" property from which you can select which Unity notification/event will trigger the Wwise component (Event, Switch, State, etc). This list contain only a subset of what is possible in Unity. However, the triggering system is extensible, without modifying the Integration code itself.
To add a new trigger, you simply have to write a C# class that derives from AkTriggerBase. All classes derived from AkTriggerBase will be found through reflection and added to the "Trigger On" drop list. This class contains a delegate, triggerDelegate(GameObject in_target), that you must call when the conditions for your trigger occur. The "target" object is optional, and currently used to give collided objects when used with Colliders. This allow Wwise components to Post events on the "collidee" instead of the Collider.
While entirely optional, you could use this system to trigger audio components from your game code too. You can simply call GetComponent<YourTriggerClass>()
.triggerDelegate(GameObject in_target) whenever your trigger condition occur from your code (or have a custom function).
|
Note: | Currently the maximum number of derivative classes of AkTriggerBase is 32. |
Here is an example, with a custom function:
public class TriggerOnGunHit : AkTriggerBase { void Hit() { if(triggerDelegate != null) { triggerDelegate(null); } } }
From your game code, you could have this code:
if (playerIsShot)
{
GetComponent<TriggerOnGunHit>().Hit();
}
Any Wwise component linked to the TriggerOnGunHit trigger would then do its job. 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.
Questions? Problems? Need more info? Contact us, and we can help!
Visit our Support pageRegister your project and we'll help you get started with no strings attached!
Get started with Wwise