ゲーム制作勉強中!あこがれだったプログラマーに今からなろう!

昔、あこがれていたプログラマー。今からでも勉強してみようと思い立ち、チャレンジ開始! 勉強メモや、悪戦苦闘な日々の記録です。

サイドビューアクションゲームを作ろう(8):落ちる床と敵を倒す

今日は移動床に引き続き、落ちる床の実装と、敵を倒せるようにする。

落ちる床の仕組みも、れーさんのサイトを参考に作るわけだけど、移動床の時と同じく、接地判定の方法が異なるので、そのままでは使えない。

 

なので、単純に落ちる床のcolliderにプレイヤーが接触したら、落ちる床の落下フラグをonにする様にした。

これだと、プレイヤーが下や横から落ちる床に触れても、床が落ちてしまうけど、落ちる床ってのは、そもそも不安定ものだし😁ってことで、これでよしとした🤣

そして落ちる床のレイヤーは地面と同じにした。

これだとプレイヤー側のスクリプトは何もいじる必要がなくなる。

 

次に敵を倒せるようにする機能実装。

敵のステータスは、実はScriptableObjectから取得するように作り込んである😁

あとは、攻撃を受けた時のOndamageメソッドでHPを減らし、0以下になったら、敵のアニメのboolパラメーターdeadをtrueにして、倒れるアニメを再生させてやれば良い。

そして、ただアニメを再生させただけでは、敵が移動を続けてしまうので、このdeadパラメーターがonになっているときには、敵の移動を止めてやる。

 

で、実験したのだけど、倒れた敵にしっかりcolliderが働いているので、プレイヤーに当たってしまう。

これだと、倒れた敵を押し込んで、ずりずりと移動させる事ができてしまい、ちょっと鬼畜な感じになってしまうので、これを解決することにした。

とはいえ、ただcolliderを無効化するだけでは、倒れた敵が地面へのcollisonを失って落下してしまう。

そこで、同時Rigidbody2DのBodyTypeをStaticに変更し、落下させない様にした。

あとは数秒後に敵を消してやれば、それっぽい感じになるだろう。

 

youtu.be