Unityで2Dアクションゲームを作りたい。でも、何から手をつけていいか分からない。
多くの学生が最初につまずくのが、キャラクターの移動とジャンプの実装です。
実は、Rigidbody2DとCollider2Dの基本を押さえれば、意外とシンプルに作れます。
この記事では、Unityで2Dアクションを作る際の基本要素を、実際に動くコード例と共に解説します。
✨ この記事でわかること
- Rigidbody2Dを使った移動の実装方法
- ジャンプ処理の作り方と調整のコツ
- 攻撃判定の基本構造
- 当たり判定の設定とデバッグ方法

まずは基本の移動から実装していきましょう。コードをコピペして動かしてみるのが、理解への近道です。
\あなたにピッタリのアクションゲーム制作講座を見つけよう!/
おすすめ第1位
Unity 2Dアクションゲーム
の作り方講座(ロックマン風)
ロックマン風の横スクロールACTをスマホ化・広告実装まで対応。ゲームのリリースまでを見据えた実践的なカリキュラムで、作って終わりにならない一本です。
3D入門に最適
ゼルダ風3Dアクションゲーム
の作り方講座
ゼルダ風の3Dアクションをスマホ対応で作れる入門講座。全16回で初心者でも3Dゲーム開発の基礎からしっかり習得できます。
3プラットフォーム対応
Unity FPSゲームの
作り方講座
FPS・VR・スマホの3プラットフォームに同時対応。1本作るだけで3つのゲームが完成する圧倒的なコスパが魅力の講座です。
あなたのオリジナルゲーム、今年こそ完成させませんか?
RPG・アクション・ホラー…Unityで本格ゲームを作りたい人のための学習サイトです。
実際に完成するゲームを題材に、
ソースコード・素材・プロジェクト一式をすべて公開。
仕事や学校の合間の1〜2時間でも、
「写経→改造」で自分のゲームまで作りきれる環境です。
2Dアクションに必要な基本要素

2Dアクションゲームを作る上で、最低限必要な要素は次の4つです。
- キャラクターの移動処理(左右移動)
- ジャンプ機能(重力と入力の組み合わせ)
- 攻撃判定(当たり判定の実装)
- 敵との衝突判定(Collider2Dの設定)
これらを順番に実装していけば、基本的な2Dアクションが完成します。
重要なのは、一度に全部作ろうとしないこと。
移動→ジャンプ→攻撃の順で、1つずつ確実に動かしていきましょう。
Rigidbody2Dを使った移動の実装

2Dアクションの移動には、Rigidbody2Dコンポーネントを使います。
Transformを直接操作する方法もありますが、物理演算を使った方が滑らかな動きになります。
まずは、プレイヤーオブジェクトにRigidbody2DとCollider2Dを追加してください。
次に、以下のスクリプトを作成します。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
using UnityEngine; public class PlayerController : MonoBehaviour { [SerializeField] private float moveSpeed = 5f; [SerializeField] private float jumpForce = 10f; private Rigidbody2D rb; private bool isGrounded = false; void Start() { rb = GetComponent<Rigidbody2D>(); } void Update() { // 左右移動 float horizontal = Input.GetAxisRaw("Horizontal"); rb.velocity = new Vector2(horizontal * moveSpeed, rb.velocity.y); } } |
このコードで、左右の矢印キーでキャラクターが移動します。
ポイントは、Update()で入力を受け取り、Rigidbody2Dのvelocityを変更することです。
Y軸の速度(rb.velocity.y)はそのまま保持することで、ジャンプ中の移動も自然になります。

moveSpeedの値を変えると、移動速度が調整できます。5fだと少し速めなので、3fくらいから始めるのも良いでしょう。
ジャンプ処理の実装方法

ジャンプは、地面に接地している時だけ実行できるようにします。
接地判定には、Raycastを使う方法が一般的です。
以下のコードを追加してください。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
void Update() { // 左右移動 float horizontal = Input.GetAxisRaw("Horizontal"); rb.velocity = new Vector2(horizontal * moveSpeed, rb.velocity.y); // 接地判定 isGrounded = Physics2D.Raycast(transform.position, Vector2.down, 0.6f, LayerMask.GetMask("Ground")); // ジャンプ処理 if (Input.GetKeyDown(KeyCode.Space) && isGrounded) { rb.velocity = new Vector2(rb.velocity.x, jumpForce); } } |
Raycastで、プレイヤーの真下0.6fの範囲に「Ground」レイヤーのオブジェクトがあるかチェックしています。
地面のオブジェクトには、必ず「Ground」レイヤーを設定してください。
ジャンプ力(jumpForce)は、10fだと少し強めです。
8f〜12fの範囲で調整すると、操作感が良くなります。
⚠️ 注意点
- 地面オブジェクトには「Ground」レイヤーを設定すること
- プレイヤーオブジェクトは「Ground」レイヤー以外にすること
- Raycastの距離(0.6f)は、キャラクターのサイズに合わせて調整が必要
攻撃判定の作り方

攻撃判定は、空の子オブジェクトにCollider2Dを付けて実装します。
攻撃中だけ有効化することで、タイミングを制御できます。
まず、プレイヤーの子オブジェクトとして「AttackArea」を作成します。
そこに、以下のスクリプトを追加してください。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
using UnityEngine; public class AttackArea : MonoBehaviour { [SerializeField] private int damage = 10; void OnTriggerEnter2D(Collider2D other) { if (other.CompareTag("Enemy")) { // 敵にダメージを与える処理 Enemy enemy = other.GetComponent<Enemy>(); if (enemy != null) { enemy.TakeDamage(damage); } } } } |
AttackAreaオブジェクトには、BoxCollider2Dを追加し、Is Triggerにチェックを入れます。
攻撃ボタンを押した時だけ、このオブジェクトを有効化するようにします。
PlayerControllerに、以下のコードを追加してください。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
[SerializeField] private GameObject attackArea; void Update() { // 左右移動 float horizontal = Input.GetAxisRaw("Horizontal"); rb.velocity = new Vector2(horizontal * moveSpeed, rb.velocity.y); // 接地判定 isGrounded = Physics2D.Raycast(transform.position, Vector2.down, 0.6f, LayerMask.GetMask("Ground")); // ジャンプ処理 if (Input.GetKeyDown(KeyCode.Space) && isGrounded) { rb.velocity = new Vector2(rb.velocity.x, jumpForce); } // 攻撃処理 if (Input.GetKeyDown(KeyCode.Z)) { StartCoroutine(Attack()); } } System.Collections.IEnumerator Attack() { attackArea.SetActive(true); yield return new WaitForSeconds(0.2f); attackArea.SetActive(false); } |
Zキーを押すと、0.2秒間だけ攻撃判定が有効になります。
この時間を調整することで、攻撃のタイミングを変えられます。
当たり判定の設定とデバッグ

当たり判定が正しく動作しない場合、以下の点を確認してください。
- Collider2Dが正しく設定されているか(サイズ、位置)
- Is Triggerの設定が意図通りか
- レイヤーの設定が正しいか
- Rigidbody2Dの設定(Body Type、Gravity Scale)
デバッグには、SceneビューでCollider2Dの範囲を確認するのが効果的です。
Gizmosを有効にすると、実行中でも当たり判定の範囲が見えます。
また、OnTriggerEnter2DやOnCollisionEnter2DにDebug.Logを入れると、判定が発生したタイミングを確認できます。

当たり判定がうまく動かない時は、まずCollider2Dのサイズを大きくしてみてください。小さすぎると、すり抜けてしまうことがあります。
実践的な2Dアクション制作を学ぶには

ここまで、移動・ジャンプ・攻撃の基本実装を解説してきました。
ただし、実際のゲーム制作では、さらに多くの要素が必要になります。
敵AI、ステージ構成、エフェクト、UIなど、全体を体系的に学ぶには、専門の講座が効率的です。
Unity入門の森では、2Dアクションゲームの作り方を、基礎から完成まで丁寧に解説しています。
コードの意味から、なぜその実装方法を選ぶのかまで、しっかり理解できる内容になっています。
2Dアクション制作に特化した講座なら、効率的にスキルアップできます。
ゲーム制作でスキルを上げたい方は、ぜひチェックしてみてください。
アクションゲームを作りたいなら!Unity入門の森のアクション制作講座で本格ゲーム開発に挑戦しよう
Unity入門の森には、横スクロール・3Dアクション・FPSまで幅広いアクションゲームを作れる講座が揃っています。作りたいジャンルや目標に合わせて選んでみてください。
Unity 2Dアクションゲームの作り方講座(ロックマン風)【全16回!スマホ化・広告実装まで対応した本格横スクロールACTを作れる!】

- ロックマン・マリオ・カービィのような横スクロールACTをゼロから開発
- 7ステージ+ラスボスステージの市販ゲームに近い本格的なゲーム設計
- スマホ化・AdMob広告実装まで対応してリリースまで見据えた構成
- 敵AI15体・多彩なマップギミック・武器システムを完全実装
- 完全オリジナルゲームをアセット不使用で素材提供付きで制作
Unity 2Dアクションゲームの作り方講座(ロックマン風)は、ロックマン・スーパーマリオ・星のカービィのような2D横スクロールアクションゲームを開発できるようになる本格的な講座です。
ステージ選択・ボスの弱点システム・新武器ゲットというロックマン風のゲーム設計はもちろん、スマホ実機ビルド・AdMob広告実装(リワード・インタースティシャル)まで対応。作って終わりではなく、リリースして収益化するところまで学べます。
書籍や他のチュートリアルでは扱われていないリリースレベルの開発スキルを習得したい人に、自信を持っておすすめできる一本です。
スマホ化・広告実装まで対応した本格横スクロールACT
ロックマン風の2Dアクションゲームをリリースまで作り上げよう
→ Unity 2Dアクションゲームの作り方講座を見てみる
広告収益まで視野に入れた実践スキルを今すぐ手に入れよう!
ゼルダ風3Dアクションゲームの作り方講座【全16回!初心者でも3Dアクションがスマホ対応で作れる!】

- ゼルダの伝説・モンハン・原神のような3Dアクションをゼロから開発
- 初心者でも取り組みやすい丁寧な解説構成
- スマホ化対応で実機で動かせるゲームが完成
- 画像・動画・全ソースコード公開の充実したサポート
- アセットを使った実践的なゲーム開発手法が身につく
ゼルダ風3Dアクションゲームの作り方講座は、ゼルダの伝説・モンハン・原神のような本格的な3Dアクションゲームを作りたい人におすすめの入門講座です。
3Dゲーム開発の基礎からスマホ化まで全16回でしっかり習得できます。画像・動画・全ソースコードを公開した丁寧な解説で、初めて3Dゲームに挑戦する人でも確実に完成まで到達できる構成です。
「3Dゲームはなんだか難しそう」と感じている人が最初の一歩を踏み出すのに最適な講座です。
初心者でも3Dアクションがスマホ対応で完成する
ゼルダ風3Dアクションゲームで3D開発の第一歩を踏み出そう
→ ゼルダ風3Dアクションゲームの作り方講座を見てみる
3D開発の壁を一気に突破!スマホで動くオリジナルゲームを完成させよう!
Unity FPSゲームの作り方講座【全17回!FPS・VR・スマホの3プラットフォームを同時に作れる!】

- APEX・バトルフィールド風のFPSゲームをゼロから開発
- FPS・スマホ・VRの3プラットフォームに同時対応
- 書籍では学べないVR対応弓矢FPSのオリジナリティ高い開発手法
- 地上・空中の敵AIや弓矢チャージショットなど本格システムを実装
- 初心者でも安心の丁寧な解説と完成プロジェクトファイル付き
Unity FPSゲームの作り方講座は、APEX・バトルフィールド・Call of Dutyのような一人称視点のFPSゲームを作るための講座です。
弓矢を使ったオリジナリティの高いFPSをベースに、PC・スマホ・VRの3プラットフォームに同時対応した開発手法を全17回で習得できます。VR空間で弓を構えて矢を射るという高度なアクションの実装まで、書籍では学べないスキルが身につきます。
1本の講座でFPS・スマホ・VRを同時に作れるのはこの講座ならでは。3Dゲーム開発の幅を一気に広げたい中・上級者志望の方にもおすすめです。
FPS・スマホ・VRの3プラットフォームを同時に完成させる
1本作るだけで3つのゲームが完成する圧倒的な開発体験を手に入れよう
→ Unity FPSゲームの作り方講座を見てみる
書籍では学べないVR対応FPSで、一歩先の3Dゲーム開発スキルを今すぐ!
まとめ

Unityで2Dアクションを作る基本要素を解説しました。
要点のまとめ
- 移動はRigidbody2Dのvelocityを変更する
- ジャンプは接地判定と組み合わせて実装する
- 攻撃判定は子オブジェクトで管理する
- 当たり判定のデバッグは、GizmosとDebug.Logを活用する
基本を押さえれば、あとは応用していくだけです。
まずは、ここで紹介したコードを実際に動かしてみてください。
動かしながら理解を深めていくのが、上達への近道です。
あなたのオリジナルゲーム、今年こそ完成させませんか?
RPG・アクション・ホラー…Unityで本格ゲームを作りたい人のための学習サイトです。
実際に完成するゲームを題材に、
ソースコード・素材・プロジェクト一式をすべて公開。
仕事や学校の合間の1〜2時間でも、
「写経→改造」で自分のゲームまで作りきれる環境です。





コメント