【Unity】【FPS】プレイヤーに走り(スプリント)を実装しよう!

Unity

前回の記事ではFPSプレイヤーにジャンプを実装しましたね。

今回は、走り(ダッシュ)を実装したいと思います。

今回の走りスクリプトは、別の記事で紹介した動作スクリプトをもとに作っていきますので、まずはその記事で動作スクリプトを作っていただいてから本記事を読んでいただいた方がおすすめです。

動作スクリプトの記事↓

走りスクリプトを実装しよう

では、これらを動作スクリプトに追加してください

これらのグローバル変数を追加し、moveSpeedをprivateにします。

public float sprintSpeed; //走るときのスピード
public float WalkSpeed; //歩く時のスピード

次に、プレイヤーの状態(ステート)を表す定数をenumで作っていきます。

public MovementState state;

    public enum MovementState
    {
        walking, //歩いている状態
        sprinting, //走っている状態
        air //空中にいる状態
    }

次に、ステートを切り替えるための関数を追加しましょう。

 private void StateHandler()
    {
        //左シフトを押しているかつ地面と接している場合は、ステートをsprintingにして走る
        if (Input.GetKey(KeyCode.LeftShift) && grounded)
        {
            state = MovementState.sprinting;
            moveSpeed = sprintSpeed;
        }

        //ただ移動ボタンを押している場合は、ステートをwalkingにして歩く
        else if (grounded)
        {
            state = MovementState.walking;
            moveSpeed = WalkSpeed;
        }

        else
        {
            state = MovementState.air;
        }
    }

追加をしたらUpdate関数に入れ忘れないようにしましょう。

これらのスクリプトを追加できたらプレイヤーのインスペクターでスクリプトを確認するとこんな感じで項目が増えています。

そうしたら、走るときのスピードと歩く時のスピードを設定しましょう。

これで実行してみると

走れるようになりました!

まとめ

いかがだったでしょうか?

次回は「しゃがみ」の実装方法を紹介したいと思います。

コメント

タイトルとURLをコピーしました