「弾」のスクリプトを設定しよう。
壁判定(CollisionShape2D)はちょうどよいサイズなので変更する必要はなさそうです。基本の設定が終わったのでスクリプトを作りましょう。
「移動」中に「敵にあたる」「タイルにあたる」「カメラの外にでる」と消滅するということが実現できればよさそうです。つまり、必要なステートは「移動」と「消滅」の2つだけです。早速つくっていきましょう。
スクリプトのアタッチ
1. Bullet(GameObject)ノードを選択します。
2. シーンウィンドウ右上の
+(スクリプトをアタッチ)ボタンをクリックします。
3. 特に変更はなく作成を押し、bullet.vsを作成します。
ステートの設定「移動」
デフォルトのステート001を再利用して「移動」ステートを作ります。先述の通り、移動の処理は「弾を発射する側」で行うためアクションの設定は特にいりません。
1. ステート001を選択します。
2. インスペクターウィンドウでタイトルを「移動」に変更します。
「消滅」ステートを作る。
1. 移動の右側で右クリックを行い「ステートを追加」します。
2. 新たにできた「ステート001」を選択しインスペクターでタイトルを「消滅」にします。
3. 引き続きインスペクターで「+実行アクションを追加」をクリックします。
4. 実行アクション「自身を消滅させる」を選択し、「追加」します。
5. これでこのステートになるとこの弾が消滅するようになりました。
「移動」から「消滅」のリンクをつくる
「移動」中に敵にあたるか、タイルにあたるか、カメラの外にでると「消滅」するようにしましょう。この場合、条件は「3つ」もあることになりますが、「AND(かつ)」と「OR(または)」で3つをつなぐことで1つのリンクで複数の条件を扱うことができます。
この場合は、「敵にあたる」「OR(または)」「タイルにあたる」「OR(または)」「カメラの外にでる」とつなぐことで3つの条件を扱うことができます。
1. 「移動」ステートを右クリックしてリンクを追加します。
2. 「消滅」ステートをクリックしてリンクをつなぎます。
3. 作成されたリンクを選択し、インスペクターで「+その他条件の追加」します。
4. 「オブジェクトのあたり判定と接触」を選択します。
5. すべての方向をチェックし、「追加」ボタンを押しましょう。
6. 再度、「+その他条件の追加」をクリックします。
7. 次は「タイルと接触」条件を選択します。
8. 再び、すべての方向をチェックし、前の条件との論理条件を「OR」として「追加」ボタンを押します。
9. 3つ目の条件を「+その他条件の追加」で追加します。
10. 条件をスクロールして、その他にある「カメラの範囲外になった」を選択します。
11. データタイプ(判定対象オブジェクト)を「自分自身」前の条件との論理条件を「OR」にして追加します。
12. その他の条件が以下のようになっているか確認してください。AND/ORが違っている場合は、AND/ORのアイコンをクリックすることで変更することができます。
補足:オブジェクトのあたり判定との接触は「AND」で良いのか?
AND/ORは**「前の」**条件との論理条件との名前の通り、一段上の条件に対して判定されます。「オブジェクトのあたり判定との接触」は一番上にあり、前の条件がないためANDでもORでもどちらでも大丈夫です。ただし、順番を入れ替え2段目以降にしてしまうとANDで動作してしまうため、ORにしておくと安心ではあります。
これで弾の設定は完了です。「シーンを保存」しておきましょう。














