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

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

Unity:Input Systemの前準備

 

Input Systemについて、色々と記事を読んでみたが、どうにもGetAxisに相当するものが見つけられない。

で、考えた結果、GetAxisに相当するものがないなら、それに類似する動きを作ってしまえばいいんじゃない?😁

 

というわけで、まずは、今のスクリプトをよく見てみる。

移動開始と加速はGetAxisの効果を使っておらず、走り始めてからの時間(runTime)と、AnimationCurveから現在の速度を算定している。

これなら、GetAxisがなく0か1かの世界になっても、問題はなさそう。

 

問題は止まる時。

今はUpdateでGetAxisの値を判定し、停止か右移動か左移動かを判定させ、FixUpdateで停止ならspeedとrunTimeを0にしている。

この場合、GetAxisではなく、GetAxisRawになると、移動キーを離した瞬間にhorizontalKeyが0となり、speedとrunTimeが0となる。

youtu.be

プレイヤーが急停止してしまい、なんとも不自然。

なら、horizontalKeyが0になっても、speedとrunTimeが緩やかに0に変遷していけばいいのではないだろうか🤩

 

という事で、case MOVE_DIRECTION.STOPを下の様に変更し、speedとrunTimeを緩やかに減少させてみた。

 

結果は、こんな感じ。

youtu.be

 

ちょっとスリップしている感じがして、むしろ、こっちの方が自然になったんじゃないかな(自画自賛

 

これで、InputSystemでGetAxisが使えなくても大丈夫そうだ。

明日から、いよいよInputSystemを導入してみよう。