MENU

【Unity】最強のゲームクリエイターに俺はなる | 回避実装!!

どもです!「崩壊スターレイル」で飲月と白露を2枚抜きしてうれしいFORM_07っすうぅぅぅい!!

 

白露持ってなかったからうれしい。

 

 

前回↓は敵をちょっと動かして倒せるようにしましたね!

 

【Unity】最強のゲームクリエイターに俺はなる | Root Motionで敵を動かそう - FORM_07’s blog

 

 

今回は敵に攻撃させて、さらにサフィアちゃんの回避、そしてできたらパリィまで実装しちゃいたいと思います!

 

 

まずは敵の攻撃から。

 

 

とりあえずPlayerの位置を取得させてみるか。

 

 

Playerと敵がある程度近くなったときに敵を反応させたいから、、、、

 

距離を出さないとナ。。。

 

 

距離の比較にはSqrMagnitude()を使います。

 

こいつはベクトルの長さを2乗した値を返してくれます。

 

 

これを使ってPlayerと敵の距離を判定していくぅう!

 

 

こんなかんじ

 

これでよし。

 

 

・・・・で、Playerとの距離が近いときに何秒かおきに攻撃してほしいから、、、

 

みんな大好きdeltaTime

 

「何秒かおきに」の実装はこれでよさそうだな。

 

あとは攻撃させればいいわけだけど・・・

これがぴゅーーってなってグサッってなればいいか。

 

 

Update関数

コルーチン


これでPlayerめがけて体当たりしてくれるはずだ。

 

 

 

あれぇーーーー・・・・・・(゚◇゚)

 

 

・・・・・おかしいな。

 

 

・・・・・・ッスゥーーーーー・・・・・・(-.-;)

 

 

ん!?

 

 

・・・なんかAnimatorコンポーネントをオフにして実行したらちゃんとPlayerに向かって体当たりしてきた。

 

なにこれ・・・( ・o・)

 

しかも試しにanimator.speedを0にしてアニメーションを停止させてみても駄目だったし、、、

 

理由がわかんないからコンポーネントを無効にするしかないか。

 

なんかモヤモヤするなぁ・・・(=_=)

 

まぁいいや。

 

 

 

・・・ってまてよ。Animatorコンポーネントオフにしたらアニメーションしないじゃん。(当たり前だろ)

 

 

やーーめた。

 

敵の挙動はスクリプトでどうにかするか。。。

 

 

ステート駆動、便利だし、なにより作りやすい

 

 

結局ステート駆動システムで実装することにした。

 

特に特殊なことはしてないね。

 

 



やった~~~~!!

 

動いたし安定してる。

 

 

挙動の調整は必要だな。。。(._.)

 

 

かなり手こずったがここからさらにサフィアちゃんの回避を実装する。

 

 

回避の概念を実装するにはまずダメージを受けるようにしないとな。。。

 

 

ってなわけで攻撃用の当たり判定をつくって、、、

 

攻撃に合わせて有効にするかんじ

 

攻撃判定のコードを変えて、、、

 

 

攻撃判定オブジェクトにアタッチされたクラス

 

PlayerとEnemyそれぞれの被攻撃時の処理を用意して、、、

 

PlayerStatusクラス

Enemyクラス

 

攻撃時にスプライトの色を赤くする処理を付けてあげたら、、、

 

(サフィアちゃんと敵のステータスの関係で敵からのダメージが0になってるからHPバーは動きません)

 

っしゃぁぁい!ダメージが実装できたぞ~~~~~!!

 

 

間髪入れずに回避を実装していく。

 

 

まずはInputSystemをいじくりまわす。

 

InputActionsの実家のような安心感


で、コード。

 

いつかコルーチンの軽量化もしないとな。

ステート駆動システムに組み込む。

 

これでよし。

 

わかりづらいな。。。

あとは当たり判定をいじくって回避できるようにしてやればいい。

 

要は無敵時間を作る。

 

 


ちょっと実装がスマートじゃないしコードが汚いな。。。

 

 

まぁひとまずよしとしよう。

 

 

サフィアちゃんが赤くならないので回避成功です。

 

こんなかんじで動いてくれました。

 

若干ゲームっぽくなってきたな。

 

 

よ~~~~~~し今回はここまでぇぇぇぇぇい!

 

パリィはまたの機会に断念します。

 

かなり手こずったな。。。

 

この前立てた予定も一週間遅れる羽目に、、、

 

 

(スケジュール通りにいくとは端から思ってなかったけども・・・・(^x^))

 

 

次回からはマップに本格的に取りかかっていきたいと思います!!

 

 

form-07.hatenablog.com