ども~。「キングダム 運命の炎」がおもろくてうれしいFORM_07ですよい!
早く続きが観たいぎぎぎぎぎ。。。
前回↓はState駆動システムを実装し直しましたね!
【Unity】最強のゲームクリエイターに俺はなる | ステート駆動システムをUpdate関数で実装しよう! - FORM_07’s blog
今回はそれを使ってサフィアちゃんの攻撃の種類を増やしたい。
さぁぁてまずはスプライトを用意しないとな。。。
まず1つ。
エフェクトとかは後回し。
前と比べると早く完成できるようにはなったな。。。
これをUnityに取り込んで、、、Animator Controllerにいい感じに追加して、、、
(Animator Controllreの設定について詳しくはこちら↓から)
今回はアニメーション遷移にTrigger型のパラメータを使ってます。
boolとtriggerの違いだけど、クソ雑魚語彙力で説明すると、boolはレバー、triggerはボタンってかんじ。
boolはtrue (on) とfalse (of) の切り替えができて、triggerはできない。
逆に言うとtriggerは一度onにしたらすぐにoffになるから、boolみたいにわざわざ切り替える必要がない。
今やってる「攻撃」みたいな、1回きりのアニメーションにはtriggerが向いてて、しゃがみとかバッグを開く、みたいな状態を切り替える系のアニメーションにはboolが向いてるってこと。
さて説明も終わったところで、
攻撃関数でtriggerをonにする。
あとは、、、ステート駆動システムを採用してるからそっちにも対応させないとな。
これ知らなかったんだけど、GetCurrentAnimatorStateInfo(レイヤー番号).normalizedTimeで今再生中のアニメーションの進捗を参照できるみたい。
normalizedTimeが0で再生前、0.5で半分再生済み、1で再生後。
すげぇこれ使えばアニメーションが終わった時点でステートを遷移させれるじゃん。
ここで注意なのが、normalizedtime == 1じゃなくてnormalizedTime >= 1にすること。
Update関数で1フレームが実行された瞬間に一寸の狂いも無くちょうどアニメーションが終わることなんてないからね。
よぉぉぉ~~し、いいかんじ!
今回はここまで!
学びのある日々はいいな、やはり。
次回からはコンボを実装していこうと思います!