見出し画像

ほんとに簡単2Dアクション#04

ジャンプについて

ジャンプについて説明していこうと思います。

まずジャンプはUnityでは物理演算が出来る機能があるので比較的簡単に作ることが出来ます。

けれどジャンプはエラーが発生しやすい機能でもあるので注意して作っていきましょう。

まずは物理挙動をしてもらうためにジャンプを実装するキャラクターにリジッドボディを入れていきましょう。

プレイヤーを選択してから
右側にあるInspectorって場所の下にAddcomponentっていうのがあって、今上の写真で赤で囲っている部分のことです。

そこ押して、RigidBody2Dを検索して追加してください
基本はデフォルトで大丈夫です。

3D用のRigidBodyもあるので2Dとついているモノを選択してください。
エラーが発生します。

続いて当たり判定も追加しましょう。
コライダーという機能が当たり判定です。

当たり判定には様々な形が存在します

BoxCollider2Dという四角の当たり判定
丸型、カプセル型などなど
様々な操作ができます。

オーソドックスに四角型で作っていきましょう


丸がついているところを選択するとコライダーを操作出来ます。
それを使いオブジェクトに合わせるように使ってみて下さい。

ここまで出来たら
地面を作りましょう

適当にオブジェクトを作ってCollider2Dを追加しましょう。

そうするとジャンプのテストが出来ます。

これからジャンプのテストをしていきましょう。

プログラムを作っていきます。

ジャンプもそれほど難しいプログラムは使いません。
少し移動方法と同様にルールのようなものがあります。

ジャンプは物理挙動を使うと楽に出来ます。つまりRigidBodyです。
どう使うかはプログラミングを書きながら説明します。
プログラムは移動に使った場所と同じでいいです。

このように一番上のほうにリジッドボディを宣言します。
リジッドボディを取得します。

宣言したらもうジャンプのスクリプトを作れます。
ジャンプは一行で出来ます。

このようにプログラムを書けばジャンプの機能が入れられます。
数字が入っている部分がジャンプの強さとなります。

this(プログラムが入っているオブジェクトの) rigid(物理演算で) AddForce(力を加える) transform.up(上方向に) 10f(10の力で)ForceMode2D.Impulse(瞬間的な力)

といった風に考えられます。
瞬間的な力を上方向に10のパワーで加えるというプログラムです。

ではこれをキーで反応するようにするには

1回だけ反応してほしいので
前回の記事で書いた

GetKeyDownを使いましょう。
分からない人は前回の記事を見てみてください

このような完成系になったかと思います。
これでジャンプは完成です。
ジャンプが出来るようになっただけで制御を入れてないので空中でジャンプが出来ます。そこを治したいのならそこは皆さんが工夫してみてください。
ジャンプは奥が深く様々な工夫が可能です。

どうでしたかジャンプだけだとすごくかんたんだったでしょう
準備が少し面倒かもしれませんが、これでプレイヤーの移動、ジャンプは完成となります。
機能ごとに分けて考えればすごく簡単だということが分かったかと思います。

次回ではステージの作り方について説明していこうと思います。