【Unity】RigidBodyでキャラをジャンプさせる

Unity (2021.3.2f1)

はじめに

どうも、バッテラです。

キャラクターが用意できたら次はジャンプをさせたみたいと思うのがクリエイター思考だと思います(適当)

ということでジャンプを実装する方法を共有したいと思います。

キャラクターと地面を用意

まずは準備物としてジャンプをさせるキャラクターと地面を用意しましょう。

私はとりあえずこんな感じでやりました。

RigidBodyをアタッチ

キャラクターにRigidBodyをアタッチします。

ConstraintsでRotationを固定しないと倒れてしまうのでチェック入れておきましょう。

Colliderをアタッチ

まず地面にColliderをアタッチしましょう。

Createメニューから作ったゲームオブジェクトなら最初からColliderがついてると思います。

次はキャラにColliderをアタッチします。

なんでもいいですがBoxColliderをアタッチしておきました。

キャラのサイズに合うようにColliderCenterSizeを調整します。

AddForceでジャンプ

次はスクリプトファイルで実装です。

スクリプトファイルを作りキャラクターにアタッチします。

今回は例としてSpaceキーを押したらジャンプするというコードを書いてみます。

if (Input.GetKeyDown(KeyCode.Space))
{
    Rigidbody body = GetComponent<Rigidbody>();
    body.AddForce(transform.up * power, ForceMode.VelocityChange);
}

コードを簡単に解説していきます。

AddForceRigidBodyのオブジェクトに力を加えるメソッドです。

ジャンプは力を加える方向はtransform.upになります。

さらに瞬間的に力を加えるのでForceMode.Impulseにしています。

ForModeについて詳しく知りたいのであれば以下の記事を見てもらえると幸いです。

www.m2game.net

powerは調整が難しいのでエディタでいじれるようにしておくのが吉です。

これで実行してみると・・・

これで無事実装完了です!