記事作成 2019年6月
PlayMaker 1.9.0 / Unity 2018.2.6f1
弾に当たったオブジェクトを消してみます。
弾を発射する 1 で作った弾を改変して使用します。発射装置はそのまま。
操作キャラは 十字キーでキャラクターを操作する のカプセルです。
[Add Force] で力を加えていた弾です。作成してプレハブ化している場合は
シーン上にドロップして、プレハブとの接続を切ります。
プレハブのままでは、新たな子オブジェクト等を付け加えることができません。
(すでに付随しているFSMコンポーネント(状態遷移)は、プレハブ状態のままで編集
できます。)
(すでに付随しているFSMコンポーネント(状態遷移)は、プレハブ状態のままで編集
できます。)
オブジェクトを選択した状態で、図のようにすれば、プレハブとの接続を切ることができます。
* 追記 2020 / 09 /20
(Unity2019からは、プレハブを選択することで、子オブジェクトを付け加えたり、
付随しているPlayMakerの状態遷移を変更することができます。参考 プレハブ内のFSM編集)
次に、空オブジェクトを作成し、弾の子オブジェとします。
その空オブジェクトに [Sphere Collider] を付け、トリガとします。
トリガになるコライダの大きさは、本体より少し大きめにします。
この子オブジェに状態遷移を設定し、ノード、アクションをこのように。
[Trigger Event] でTag 「t 敵」を付けられたオブジェクトに接触したとき、
そのオブジェクトを、変数 [gobj 当たった敵オブジェ] に格納し、次へ遷移します。
[gobj 当たった敵オブジェ] はゲームオブジェクト変数です。
次の状態「敵を消す」で、その変数に格納されたオブジェクトを消します。
[Destroy Object]
ということで、敵となるオブジェクトには、Tag「t 敵」が付いていなければなりません。
Cubeには、Tagと一応 Rigidbody も。
敵キャラは、もちろん、用意したモデルでも構いません。
このTag 付き 敵Cube は次で使いたいと思うので、できればプレハブにしておいてください。
ここで紹介したやり方はあくまで一例で、敵側で判定を取ることも含めて、様々な方法
があるはずです。弾が当たるものが敵だけでなく、他にもある場合は(アイテムなど)
[Trigger Event] アクションを別オブジェ用に並べるのもありですが、当たるものすべてを
「t 接触物」などとして、その子オブジェに識別用のTagをつけることもできます。
([Get Random Child ] [Game Object Tag Switch] などで取得)
----------------------------------------------
ここまでやってくると、「敵に当たったら弾も消す」とか「敵に当たったときに
パーティクルエフェクトを生成する」…などのアイデアも工夫次第でできると思います。
動画は、目標を追いかけるオブジェクト で作成した追いかけるCube を敵にして、
弾を発射する 2 の直進弾に判定を付けてみたものです。
0 件のコメント:
コメントを投稿