Unity (2021.3.2f1)
はじめに
どうも、バッテラです。
キャラクターが用意できたら次はジャンプをさせたみたいと思うのがクリエイター思考だと思います(適当)
ということでジャンプを実装する方法を共有したいと思います。
キャラクターと地面を用意
まずは準備物としてジャンプをさせるキャラクターと地面を用意しましょう。
私はとりあえずこんな感じでやりました。
RigidBodyをアタッチ
キャラクターにRigidBodyをアタッチします。
ConstraintsでRotationを固定しないと倒れてしまうのでチェック入れておきましょう。
Colliderをアタッチ
まず地面にColliderをアタッチしましょう。
Createメニューから作ったゲームオブジェクトなら最初からColliderがついてると思います。
次はキャラにColliderをアタッチします。
なんでもいいですがBoxCollider
をアタッチしておきました。
キャラのサイズに合うようにCollider
をCenter
とSize
を調整します。
AddForceでジャンプ
次はスクリプトファイルで実装です。
スクリプトファイルを作りキャラクターにアタッチします。
今回は例としてSpaceキーを押したらジャンプするというコードを書いてみます。
if (Input.GetKeyDown(KeyCode.Space)) { Rigidbody body = GetComponent<Rigidbody>(); body.AddForce(transform.up * power, ForceMode.VelocityChange); }
コードを簡単に解説していきます。
AddForce
はRigidBody
のオブジェクトに力を加えるメソッドです。
ジャンプは力を加える方向はtransform.up
になります。
さらに瞬間的に力を加えるのでForceMode.Impulse
にしています。
ForMode
について詳しく知りたいのであれば以下の記事を見てもらえると幸いです。
power
は調整が難しいのでエディタでいじれるようにしておくのが吉です。
これで実行してみると・・・
これで無事実装完了です!