Unityで使うWwiseコンポーネントの大部分に"Trigger On"プロパティが設定されていて、そこからそのWwiseコンポーネント(Event、Switch、Stateなど)をトリガーするUnityのノティフィケーションやイベントを選択できます。このリストは、Unityで可能な内容の一部しか表示していません。ただしトリガーシステムは拡張可能で、Integrationコード自体を修正する必要もありません。
新しいトリガーを追加するには、 AkTriggerBase から派生するC#クラスを書くだけです。AkTriggerBaseから派生するクラスは全て、反射で見つけられ"Trigger On"ドロップリストに追加されます。このクラスにデリゲート(代理)であるtriggerDelegate(GameObject in_target)が含まれ、トリガー条件が発生した時にこれをコールする必要があります。"target"オブジェクトは必須ではなく、現在はColliderと使う時にコライドするオブジェクトを提供するために使用されます。これにより、WwiseコンポーネントがイベントをColliderに対してではなくコライドの対象にPostできます。
もちろん必須ではありませんが、このシステムを利用してゲームコードからオーディオコンポーネントをトリガーすることもできます。トリガー条件が発生するたびに、コードから GetComponent<YourTriggerClass>()
.triggerDelegate(GameObject in_target) をコールさせる(またはカスタム化したファンクションを設定する)だけです。
| 注記: 現在のAkTriggerBaseの派生クラス数の上限は、32です。 |
これは、カスタムファンクションを使った例です:
public class TriggerOnGunHit : AkTriggerBase
{
void Hit()
{
if(triggerDelegate != null)
{
triggerDelegate(null);
}
}
}
ゲームコードから、このコードを得ることができます:
if (playerIsShot)
{
GetComponent<TriggerOnGunHit>().Hit();
}
これでTriggerOnGunHitトリガーにリンクされたWwiseコンポーネントは全て、自分の責任を果たせます。なお、これは単純な場面ではやりすぎの可能性が高く、別の方法として単純に AK::SoundEngine::PostEvent
("GunHit", gameObject) からベースWwise SDKをコールさえすれば、サウンドデザイナはこのイベントのエフェクトをWwiseで設定できます。
Wwise Unity Integrationに対してThu Feb 1 09:40:26 2018に生成されました。
1.6.3