Input Systemについて、色々と記事を読んでみたが、どうにもGetAxisに相当するものが見つけられない。
で、考えた結果、GetAxisに相当するものがないなら、それに類似する動きを作ってしまえばいいんじゃない?😁
というわけで、まずは、今のスクリプトをよく見てみる。
移動開始と加速はGetAxisの効果を使っておらず、走り始めてからの時間(runTime)と、AnimationCurveから現在の速度を算定している。
これなら、GetAxisがなく0か1かの世界になっても、問題はなさそう。
問題は止まる時。
今はUpdateでGetAxisの値を判定し、停止か右移動か左移動かを判定させ、FixUpdateで停止ならspeedとrunTimeを0にしている。
この場合、GetAxisではなく、GetAxisRawになると、移動キーを離した瞬間にhorizontalKeyが0となり、speedとrunTimeが0となる。
プレイヤーが急停止してしまい、なんとも不自然。
なら、horizontalKeyが0になっても、speedとrunTimeが緩やかに0に変遷していけばいいのではないだろうか🤩
という事で、case MOVE_DIRECTION.STOPを下の様に変更し、speedとrunTimeを緩やかに減少させてみた。
結果は、こんな感じ。
ちょっとスリップしている感じがして、むしろ、こっちの方が自然になったんじゃないかな(自画自賛)
これで、InputSystemでGetAxisが使えなくても大丈夫そうだ。
明日から、いよいよInputSystemを導入してみよう。