この記事にはプロモーションが含まれています。
【初心者向け】Unity 2Dゲームのジャンプ方法を複数紹介!【サンプルあり】
九十九すい
こんにちは!九十九すいです!Unityの2Dゲームで役に立つジャンプする方法をいくつか教えてもらうよ!
こんな疑問をもったあなたにおすすめ!
- Unityでキャラクターをジャンプさせる方法が知りたい!
- ジャンプを制限する簡単な方法は?
- ジャンプ力を調整したい!
この記事では『単純な1回きりのジャンプ』から『連続でジャンプ』、『ジャンプ力の調整』方法までを解説します。
完成イメージ
たとえば『スーパーマリオブラザーズ』のようなアクションゲームでは、比較的ゆっくりとした上昇と下降をするように実装されています。
『チャリ走』では1回のジャンプ力を小さくしたり、すぐに落下させるといった制御になっています。
単純なジャンプ1つでもゲームによって使い分けることがベストなのです。
この記事でいくつかの種類を使い分けられるようにしてみてください。
またUnityを早く効率よく使いこなせるようになりたいなら、Udemyの動画学習が時短にもなるのでおすすめです!
プログラミングをITスクールで学ぶのはメリットも多いですが、一番のネックは値段です。
「自分に合わなかったらどうしよう」「学ぶプログラミング言語を変えられない」などの悩みはつきません。
そのため、まずは気軽に始められ、初心者でもスムーズに学習ができるUdemyの講座を試してみるのをおすすめします!
Udemy | 一般的な ITスクール | |
---|---|---|
値段 | 1,500円~ ※毎月割引あり | 平均 100,000円以上 |
講座数 | 210,000講座以上 | 平均10コースほど |
受講時間 (期間) | [h] (最短1日から) | 約10~[h] (平均2~3ヶ月) | 約200
講師への質問 | 講座による | できる |
\【視聴期限なし】 今だけ1,500円~すぐに学べる/
30日以内なら返金無料!
【最新】Udemyのセールはいつごろ?セールを知らせる通知設定の方法まで紹介!
こんにちは!九十九すいです!Udemy(ユーデミー)のセールがいつごろなのか、セールの通知設定方法を紹介してもらうよ! こんな疑問をもったあなたにおすすめ! Udemy…
目次
Unity ジャンプの実装方法【簡単:5ステップ】
Unityで2Dキャラクターをジャンプさせる方法はいくつかあります。
ここでは最も基本的な方法を紹介しますので、初めてでもすぐにジャンプ機能をゲームに追加することができます。
Unity ジャンプの実装方法
九十九すい
Unityでは少ないプログラムでも動かすことができるから、まずはやってみることが肝心だよ!
1|キャラクターを準備
ジャンプさせたいキャラクターの画像をUnityに取り込み、表示させます。
キャラクター準備
- 取り込みたい画像を「Assets」にドラッグ・アンド・ドロップ
- 「Assets」にある画像を「Scene」もしくは「Herarchy」へドラッグ・アンド・ドロップ
準備はたったこれだけで完了です。
とーるくん
このキャラクターの画像はぼくです!ぼくが”異世界”を冒険する小説『つくもの語り』の連載をしていますので、ぜひご覧ください!
2|キャラクターに物理法則・当たり判定を付与
このままでは、画像をUnity上に表示させただけになってしまいます。
なので、キャラクターに「物理法則(Rigidbody 2D)」と「当たり判定(Box Collider 2D)」を付与していきます。
物理法則(Rigidbody 2D)の追加
物理法則(Rigidbody 2D)の追加
- 先ほどUnityに取り込んだキャラクターを「Hierarchy」で選択
- インスペクター下部にある「Add Component」の中から、「Rigidbody 2D」を追加
この操作でキャラクターに物理法則を適用することができます。
具体的には重力が働くようになるので、キャラクターが下に向かって落下します。
当たり判定(Box Collider 2D)の追加
物理法則を追加したときとやり方はほとんど同じです。
当たり判定(Box Collider 2D)の追加
- 先ほどUnityに取り込んだキャラクターを「Hierarchy」で選択
- インスペクター下部にある「Add Component」の中から、「Box Collider 2D」を追加
こうすることでキャラクターが当たり判定を持ち、他のオブジェクトにぶつかることができるようになりました。
九十九すい
「Box Collider 2D」を追加しないと、地面に触れることができずに落下していってしまうよ…
3|地面になるBoxを準備
このままではキャラクターが落下するだけですので、キャラクターを立たせるための地面を用意します。
地面の追加
- 「Hierarchy」の上で右クリック
- 開いたメニューから「2D Object」を選択
- 「Sprites」を選択
- 「Square」を選択
これでUnityの画面上に、地面になる白い箱が表示されます。
箱をクリックすると四方に青い点が表示されますので、それを調節することで大きさを変えることができます。
地面の大きさを調節できたところで、地面には「当たり判定(Box Collider 2D)」を設定します。
当たり判定(Box Collider 2D)を設定
- 「Floor」を「Hierarchy」で選択
- インスペクター下部にある「Add Component」の中から、「Box Collider 2D」を追加
こうすることで地面が当たり判定を持ち、キャラクターのための足場になりました。
とーるくん
地面には物理法則を設定する必要はありません!
設定すると地面まで落ちていってしまいます!
4|ジャンプスクリプト(C#)の作成
最後に、スペースキーを押すことでキャラクターがジャンプするプログラムを実装します。
最初にプログラムをするための「C#」ファイルを作ります。
下記の順で操作をします。
「C#」ファイルの作り方
- 「Assets」の上で右クリック
- 出てきたメニューの中から「Create」を選択
- 「C# Script」を選択
- 作成したC#ファイルは「PlayerJump」と名称をつける
作成したファイルを開き、下記プログラムを入力してください。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerJump : MonoBehaviour
{
//キャラクターの状態を入れる箱を用意
public Rigidbody2D chara;
//キャラクターのジャンプ力の設定
public float jumpForce = 10f;
void Start()
{
//キャラクターの状態を取得
chara = GetComponent<Rigidbody2D>();
}
void Update()
{
//スペースキーを押されたかどうかを判定
if (Input.GetButtonDown("Jump") )
{
//キャラクターにジャンプさせる
chara.AddForce(new Vector2(0, jumpForce), ForceMode2D.Impulse);
}
}
}
このプログラムはスペースキーの挙動を取得し、押されたときにキャラクターをジャンプさせる内容です。
次に作成したC#のファイルをキャラクターに実装させます。
C#ファイルをキャラクターに実装
- ジャンプさせたいオブジェクトを「Herarchy」で選択し
- 作成したC#のファイル「PlayerJump」を、キャラクターのインスペクターへドラッグ・アンド・ドロップ
これで完了です。
Unityで実行させる(再生ボタン押す)とキャラクターに物理法則が付与され、スペースキーを押すとジャンプするようになりました。
5|ジャンププログラム実行画面
このプログラムでは無限にジャンプできてしまい、キャラクターが画面外へ出てしまっています。
その対策であるジャンプ回数の制限を次で紹介します。
九十九すい
このプログラムが何をしているのかは、Udemyでしっかりと理解しておいた方が良いよ!
\【視聴期限なし】 今だけ1,500円~すぐに学べる/
30日以内なら返金無料!
【最新】Udemyのセールはいつごろ?セールを知らせる通知設定の方法まで紹介!
こんにちは!九十九すいです!Udemy(ユーデミー)のセールがいつごろなのか、セールの通知設定方法を紹介してもらうよ! こんな疑問をもったあなたにおすすめ! Udemy…
ジャンプ回数の制限方法
キャラクターがジャンプするようになったものの、このままでは無限にジャンプし続けてしまいます。
ジャンプする回数を制限して、キャラクターが飛びすぎないようにしましょう。
下記プログラムには、先程のプログラムに「地面にいるかどうかの判定」を追加しています。
これで1回ジャンプしたら地面に着地するまで、ジャンプできなくなるのです。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerJump0 : MonoBehaviour
{
//キャラクターの状態を入れる箱を用意
public Rigidbody2D chara;
//キャラクターのジャンプ力の設定
public float jumpForce = 10f;
//地面にいるかどうかの判定設定
private bool isGrounded;
void Start()
{
//キャラクターの状態を取得
chara = GetComponent<Rigidbody2D>();
}
void Update()
{
//スペースキーを押されたかどうかを判定
if (Input.GetButtonDown("Jump") )
{
//キャラクターにジャンプさせる
chara.AddForce(new Vector2(0, jumpForce), ForceMode2D.Impulse);
//ジャンプしたら、地面から離れたと判定
isGrounded = false;
}
}
// 地面に触れているかの判定
void OnCollisionEnter2D(Collision2D other)
{
if (other.gameObject.CompareTag("Floor"))
{
isGrounded = true;
}
}
}
変数「isGrounded」がキャラクターが地面にいるかどうかを判定している情報を入れる箱になっています。
「OnCollisionEnter2D」では、キャラクターが他のオブジェクトに接触したときに呼び出される処理を記述しています。
// 他のオブジェクトと接触したら呼び出される
void OnCollisionEnter2D(Collision2D other)
{
//接触したオブジェクトの名前が「Floor」だったら作動する
if (other.gameObject.CompareTag("Floor"))
{
//地面と接触していると判定
isGrounded = true;
}
}
とーるくん
このプログラムの内容が難しいと感じる方は、
すぐに見直せる書籍から読み解くのもオススメですよ!
ジャンプ力の調整方法
実装するゲームによっては、ジャンプ挙動を変更したいと思います。
数値を変えるだけでできる、2つパターンの方法を紹介します。
与える力(例:jumpForce)の数値を変更する方法
先程のプログラムの最初の方に「public float jumpForce = 10f;」の記述があります。
この「10f」がキャラクターのジャンプ力になります。
この「f」はFloat(フロート)のFであり、小数点まで扱う数字であるという記述がされているのです。
「10f」を「100f」や「0.5f」などの数字に変更することで、ジャンプ力を変更することができます。
キャラクターに働く重力を変更する方法
キャラクターに働く重力を変更することで、ふんわりとしたジャンプやすぐに落下するジャンプなどの制御ができます。
重力の変更方法
- 重力を調整したいオブジェクトを選択
- 「Rigidbody 2D」の「Gravity Scale」の数値を変更
デフォルトは「1」になっていますので、数値を増やすことで重力を強く、減らすことで弱くできます。
九十九すい
これらの数値を変更して、
つくりたいゲームに適したジャンプを探してみてね!
ジャンプを実装したサンプル
ここまでの内容を元に作成した、スペースキーを押すことでジャンプするプログラムです。
左の「Gravity Scaleを0.5」に右の「Gravity Scaleを5」にしています。
ジャンプ力は「10f」のままです。
とーるくん
重力が強いと全然ジャンプできません…
九十九すい
基本的に重力が弱い、落下が遅い挙動のほうが遊びやすいゲームになるね!さらにUnityを極めたい方には『Udemy』がおすすめだよ!
Udemy
おすすめ度:
公式サイト:udemy.com
評価項目 | 評価 |
---|---|
費用 | |
受講スタイル | |
コースの種類・内容 | |
受講サポート | |
就職支援 |
『Udemy』の強みは何と言っても、213,000以上のコースがオンラインで気軽に学べることにあります。
Unityにとどまらず、Python(パイソン)やマーケティング、ビジネススキルまで網羅しているため未経験の方でも、お手軽に始めやすいですがオンラインが主体なのでどうしも挫折率は上がると思います。
すでにある程度のスキルがある方や仕事の幅を広げたい方におすすめのスクールです。
\ UDEMYAFF10 を使用すると 10% オフ/
30日以内なら返金無料!
Unity 2D ジャンプのよくある質問
【結論】Unityなら2Dゲームの醍醐味のジャンプをあっという間に実装できる!
この記事のまとめ
- Unityでジャンプを実装するには、オブジェクト(キャラクター)とC#(スクリプト)が必要!
- ジャンプを制限するなら、地面の接触判定を使うと簡単!
- ジャンプ力は変数(例: jumpForce)の数値で調整できる!
Unityで2Dゲームのキャラクターをジャンプさせる方法には様々なアプローチがあります。
基本的なジャンプの実装から、ジャンプの制限、さらにはジャンプ力の調整方法までを幅広くカバーしました。
Unityでは、少ないコードで大きな機能を実装できるので、初心者でも挑戦しやすいのが魅力です。
プログラミングは実際に手を動かしてみることが一番の学びになります。
この記事を参考にしながら、あなたのゲームにジャンプ機能を取り入れてみて、さらなる発見や改善点を見つけてみてください。
Udemyの動画講座では、製品レベルのゲームをつくることができる講座がたくさんあります。
まずは気軽に学んでみたい方にはとてもおすすめです!
Udemyであなたのつくりたいゲームをつくるチャンスを掴んでみませんか!
\【視聴期限なし】 今だけ1,500円~すぐに学べる/
30日以内なら返金無料!
【最新】Udemyのセールはいつごろ?セールを知らせる通知設定の方法まで紹介!
こんにちは!九十九すいです!Udemy(ユーデミー)のセールがいつごろなのか、セールの通知設定方法を紹介してもらうよ! こんな疑問をもったあなたにおすすめ! Udemy…
TechMoire(テックモワ)では、web3(AI / メタバース)やITスクールの情報などを中心に情報を発信しております。
もしよければ、X(@TechMoire)のフォローなどもよろしくお願いします。
一緒に最新技術を楽しんでいきましょう!
九十九すい
それでは、ありがとうございました!
管理者情報
ITコンサルタント
あらき きりん
現役ITコンサルタント 兼 Webディレクターとして従事。2015年に未経験からITスクールに入学。その後、EdTech企業にて、IT講師として大手企業や個人受講生に向けた授業(Webデザイン、プログラミング、マーケティング、ディレクションなど)を担当。スクールキャリアカウンセラーとして、述べ1,000人以上のキャリアサポートや授業を経験。現在は、IT系メディアの運営や企業ITサポート、Web制作をしながら、web3についての情報を発信しています。本メディアの記事はすべて、わたしが監修しています。