STEP2: 弾のオブジェクトを作ろう - 弾のスクリプト
-
新しいスクリプトを作成しましょう。 シーンウィンドウ上部の
マークをクリックして新しいスクリプトを作ります。

-
言語がVisualScriptであることを確認の上、任意の名称をつけて作成してください。
-
最初のノードはMoveと名称を変更し、重力の影響を受けないオプションを有効にしておきます。
-
Actions>+Add Excutable Actionより実行アクションとして、攻撃設定を追加します。命中グループを指定し、Enemyのみとしましょう。これにより攻撃がプレイヤーにあたってしまうのを回避します。
-
続いて、ステートを追加より新たなステートを作り、Removeと名付けましょう。こちらも重力の影響を受けないオプションを有効にしておきます。
-
Removeステートに実行アクション、自身を削除(RemoveSelf)を追加します。これは、自身をゲームから取り除く処理です。弾や敵のようなオブジェクトは、役割を終えた際に取り除くようにしないとずっと存在することになり、リソースを圧迫してしまいますので必ず取り除くようにしましょう。
-
最後にMoveを右クリックしてリンクを作成してRemoveにつなぎます。
-
取り除く条件を3つ設定します、1つ目は敵に命中したときです。インスペクターよりConditions>Add Conditionで、当たり判定と接触(ContactWithHitArea)を追加します。どの方向から当たっても判定したいので、判定方向はすべて、対象グループはEnemyとしましょう。
-
2つ目の条件を設定します。同様の手順でカメラの範囲外(Offscreen)を追加します。ターゲットタイプはこのノード、前の条件との論理条件はORにしましょう。ここがANDのままだと、双方の条件を満たさないと遷移しなくなってしまいます。
-
3つ目の条件を設定します。同様の手順でタイルと接触(ContactWithTile)を追加します。同じくどの方向からあたっても判定したいので、判定方向はすべてとします。前の条件との論理条件はORにしましょう。
-
これで、敵グループと命中する「もしくは」カメラの範囲外になる「もしくは」タイルと接触することで自身が削除されるようになりました。
TIPS
削除(Remove)と復活(RestoreRemove)、無効化(Disable)と有効化(Enable)アクション
似たような条件があることに気づいた方もいらっしゃるかもしれませんので、使い分けについて説明させていただきます。
削除(Remove)はその名の通りゲームから完全に取り除くもので、再利用する必要がないオブジェクトに向きます。復活(RestoreRemove)することはできますが、実際は新たに生成し直すもののため以前の状態はリセットされます。
無効化(Disable)は一時的に動作しないようにするだけのもので、ゲームからは取り除きません。そのため、有効化(Enable)することで元の状態そのままで復帰できます。便利ですが、Disable状態のオブジェクトもリソースを消費するため、再利用する予定がないものは削除(Remove)したほうが安心です。
消滅アニメーションを設定する場合の設定
今回は特にアニメーションを設定していないため、即座に消滅するようにしましたが、Removeアクションにアニメーションを設定するとアニメーションが再生される前に消滅してしまいます。
設定したい場合は、RemoveとMoveの間に命中用のステートを追加すると良いでしょう。
命中条件を満たすと命中用ステートに遷移し、アニメーションを再生。「アニメーションが終了した」条件か「秒数経過」条件でRemoveステートに遷移するようにすると良いでしょう。








