キャラの移動には色々な方法がありますが、今回は、Rigidbody2D コンポーネントの管理している、Velocity(ベロシティ。速度ベクトル)の情報を操作して、キャラを移動させます。
Rigidbody2D コンポーネントのアタッチされているゲームオブジェクト(今回はキャラ)に対して、速度情報を与えることによって、キャラの移動を行うようにしています。
velocity(ベロシティ)とはRigidbodyクラスの持つ情報の1つで、各軸(x,y,z)の速度ベクトルを表しています。
ゲームオブジェクトが停止している場合、velocityの値はすべて 0 です。(velocity = 0, 0, 0)
// velocity(速度)に新しい値を代入して移動
rb.velocity = new Vector3(direction.x * moveSpeed, -fallSpeed, direction.z * moveSpeed);
x軸と z軸については、キー入力の値と moveSpeed 変数の計算結果が入り、その軸の方向へ移動を行います。
y軸は - fallSpeed 変数が指定されていますので、常にマイナス方向への速度入り、その結果、地面に向かって落下を行っています。
処理の直後に Debug.Logメソッドを入れているので、Console ビューを通じて、この velocity の値の動きを観察することができます。
キー入力を行いながら、どのような処理になっているかを確認しましょう。
参考サイト
Unity公式スクリプトリファレンス
Rigidbody-velocity
https://docs.unity3d.com/ja/current/ScriptReferenc...
SamuraiBlog 様
【Unity入門】Rigidbodyで自在に移動!velocityの活用方法!
https://www.sejuku.net/blog/55084