今日は移動床に引き続き、落ちる床の実装と、敵を倒せるようにする。
落ちる床の仕組みも、れーさんのサイトを参考に作るわけだけど、移動床の時と同じく、接地判定の方法が異なるので、そのままでは使えない。
なので、単純に落ちる床のcolliderにプレイヤーが接触したら、落ちる床の落下フラグをonにする様にした。
これだと、プレイヤーが下や横から落ちる床に触れても、床が落ちてしまうけど、落ちる床ってのは、そもそも不安定ものだし😁ってことで、これでよしとした🤣
そして落ちる床のレイヤーは地面と同じにした。
これだとプレイヤー側のスクリプトは何もいじる必要がなくなる。
次に敵を倒せるようにする機能実装。
敵のステータスは、実はScriptableObjectから取得するように作り込んである😁
あとは、攻撃を受けた時のOndamageメソッドでHPを減らし、0以下になったら、敵のアニメのboolパラメーターdeadをtrueにして、倒れるアニメを再生させてやれば良い。
そして、ただアニメを再生させただけでは、敵が移動を続けてしまうので、このdeadパラメーターがonになっているときには、敵の移動を止めてやる。
で、実験したのだけど、倒れた敵にしっかりcolliderが働いているので、プレイヤーに当たってしまう。
これだと、倒れた敵を押し込んで、ずりずりと移動させる事ができてしまい、ちょっと鬼畜な感じになってしまうので、これを解決することにした。
とはいえ、ただcolliderを無効化するだけでは、倒れた敵が地面へのcollisonを失って落下してしまう。
そこで、同時Rigidbody2DのBodyTypeをStaticに変更し、落下させない様にした。
あとは数秒後に敵を消してやれば、それっぽい感じになるだろう。