コース: Unity 2018 基本講座:プログラム

今すぐコースを受講しましょう

今すぐ登録して、23,100件以上登録されている、業界エキスパート指導のコースを受講しましょう。

CharacterControllerを作る:ジャンプさせる

CharacterControllerを作る:ジャンプさせる - Unityのチュートリアル

コース: Unity 2018 基本講座:プログラム

CharacterControllerを作る:ジャンプさせる

このレッスンでは Rigidbody を使い オリジナルのキャラクターコントローラーで ジャンプさせる方法を解説します。 現在はキャラクターが 上下左右キーで動くようになっています。 アニメーションもついている状態です。 ここでスクリプトを開いて ジャンプの実装を加えましょう。 まずは現在地面についているかどうか というフラグを作っておきましょう。 bool の isGrounded こちらを最初は True にしておきましょう。 そして Update の中、 ここでの処理ですが 歩くことができるのは isGrounded の時だけですので ここで if 文で囲います。 そして Grounded の状態で もしも Input.GetButton の Jump が true であれば ジャンプをさせます。 それ以外の時は 移動ですね。 ここでジャンプさせるんですが、まず ジャンプのメソッドを分けて作りましょう。 void Jump そしてまず isGrounded が false になりますね。 そして Rigidbody に対して AddForce で 4ぐらい。 ForceMode を Impulse にします。 そして、ここで Jump を呼びましょう。 こちらで一旦実行してみます。 Space を押すと ジャンプしました。 その後戻りません。 ただジャンプ自体はできています。 アニメーションがついていないのと、 ジャンプ後に元に戻らない、 これを直しましょう。 まずはジャンプの アニメーションをつけましょう。 animator に対して setBool で Jump というのが用意してあります。 Bool 値、true を渡します。 これでアニメーションは できました。 そして復活できない、 ジャンプ後に復活できない。 ここで引っかかってるわけですね。 isGrounded というのが ジャンプした瞬間 false になる。 その後ここがもう 通らなくなってしまっている。 では着地した瞬間に そのフラグを戻してあげましょう。 ここでは collider が 何かオブジェクトとぶつかった際に呼ばれる OnCollisionEnter を使います。 そしてこれを isGrounded を true にし、 animator の SetBool で これを…

目次