レッスン 1

目次

Trigger Conditionを制限する

[注釈]

このセクションに入る前に、その親となるセクションの Trigger Conditions を終わらせてください。

ゲームオブジェクトにTriggerを追加すると、Triggerは、ほかのTriggerやColliderとの接触をすべて、AkTriggerEnterファンクションに報告します。つまり、どのようなタイプのColliderやTriggerが対象なのか指定しない限り、301_Coinのようなゲームオブジェクトは、ほかのTriggerと交差するたびに、必ずPickup_CoinのEventを再生し、プレイヤーがTriggerをピックアップするためにTriggerに入ってきたときだけとは限りません。1つの対策として、AkTriggerEnterスクリプトを301_Coinゲームオブジェクトに追加することができます。

AkEventにAkTriggerEnterを設定すると、このAkEventはゲームスタート時にAkTriggerEnterスクリプトを探します。

AkTriggerEnterコンポーネントを見ると、Trigger Objectというプロパティがあります。このプロパティが空白だと、すべてのCollusionを均一に受け入れてしまいます。このプロパティにゲームオブジェクトを追加すれば、コンポーネントがこのゲームオブジェクトだけに反応するように制限でき、その他のゲームオブジェクトを一切無視します。

[注釈]

AkTriggerEnterのTrigger Objectに、ほかのSceneのゲームオブジェクトをアサインすることはできません。もしあなたのゲームでそれを行う必要がある場合は、カスタムスクリプトを作成して、そのゲームオブジェクトが使えるようになったときに見つけるのが、1つの方法です。

それでは、CoinにAkTriggerEnterスクリプトを追加し、プレイヤーがコインをピックアップしたときだけ再生されるようにします。

  1. Hierarchyで 301_Coin ゲームオブジェクトを選択します。

  2. Inspectorで、 'AkTriggerEnter' のComponentを追加します。

    AkTriggerEnterコンポーネントを見ると、空白のTrigger Objectプロパティがあります。Adventurerでは1人で苦労してアイテムをピックアップしているので、Playerを選びます。Trigger Objectのプロパティを指定しないと、すべてのゲームオブジェクトが検出されてしまいます。

  3. HierarchyでPlayer ゲームオブジェクトをクリックしてホールドしたまま、 Inspector > AkTriggerEnter コンポーネント > Trigger Object プロパティまで、ドラッグします。

  4. Play をクリックし、Coinをピックアップします。

    今度は、Coinのピックアップ音が、プレイヤーがCoinをピックアップしたときだけにポストされます。

  5. ESC を押してWAGメニューを開き、 Play をもう一度クリックしてPlayモードを終了させます。