Unityを始めたばかりのころ、
「まず何かオブジェクトを動かしてみたい!」
と思った経験はありませんか?
本記事では、Unity初心者向けに、最もシンプルなオブジェクト「Cube」を使って、
WASDキーでの移動操作と、スペースキーでジャンプさせる方法を、やさしく・丁寧に解説していきます。
このチャレンジを通じて
**「物理挙動(Rigidbody制御)」**の基本を身につけることができ、これから本格的なキャラクター操作やゲーム作りに進むための、大事な土台作りになります。
※今回はアニメーションではなく、物理的な制御に注目します。
こんな方におすすめ!
- Unityの基本操作を体験したい
- 自分でスクリプトを書いてオブジェクトを動かしたい
- ゲーム開発に向けて「物理挙動の制御」に慣れたい
一緒に、Unityの世界を一歩ずつ進めていきましょう!
使用バージョンは Unity 2022.3(LTS)を使って進めていきます!
UnityプロジェクトとCubeの準備
Unityでオブジェクトを動かすために、まずはプロジェクトを作成し、シーンにCubeを配置していきましょう!
シンプルなステップなので、初めての方でも安心して進められます。
新しいプロジェクトを作成する

まずはUnity Hubを開き、新しいプロジェクトを作成します。
- Unity Hubを起動します。
- 「新しいプロジェクト」をクリックします。
- テンプレートは「3D(Built-In Render Pipeline)Core」を選択します。
- プロジェクト名は分かりやすく「CubeMoveJump」としましょう。
- 保存場所を指定して「作成」を押します。
これで、移動・ジャンプを試すためのシンプルな3D環境が整いました!
Plane(地面)オブジェクトを配置する

プロジェクトが立ち上がったら、まずシーンに舞台となるPlane(地面)を配置していきます。
- Hierarchy(ヒエラルキー)ウィンドウ上で右クリック
- 【3D Object】→【Plane】を選択します
- シーン中央にPlane(地面)が配置されます
※もし中央に配置されていない場合、インスペクターのTransform
→Position
を全て0にする
Cubeオブジェクトを配置する

プロジェクトが立ち上がったら、次はシーンにCubeオブジェクトを配置していきます。
- Hierarchy(ヒエラルキー)ウィンドウ上で右クリック
- 【3D Object】→【Cube】を選択します
- シーン中央に白いCubeが配置されます
これが、今回操作の対象になるオブジェクトです。
Rigidbodyコンポーネントを追加する

次に、Cubeに「物理挙動」を持たせるためのコンポーネントを追加します。
- HierarchyでCubeを選択
- Inspector(インスペクター)ウィンドウで「Add Component」をクリック
- 「Rigidbody」と検索し、追加します
これでCubeに重力や物理演算が働くようになりました!
Rigidbodyがあることで、ジャンプや落下など「現実っぽい動き」ができるようになります。
Rigidbodyを追加するだけで、Unityは自動的に重力や衝突などの物理演算を有効にしてくれます。
Cubeを移動させる(WASDキー操作)

Cubeを前後左右に動かせるように、
WASDキーの入力を受け取り、Rigidbodyを使って物理的に動かすスクリプトを作成します。
これができると、ゲームキャラクターの**「基本の移動操作」**が自分で制御できるようになります!
移動用スクリプトを作成する

Assets
フォルダで右クリック → Create > C# Script- スクリプト名を
CubeMover
にします - Cube オブジェクトを選択し、作成したスクリプトをドラッグ&ドロップでアタッチします
スクリプトがCubeに紐づいた状態になります!

WASD入力を受け取る仕組みを理解しよう
CubeMover
ファイルを開き、以下のようなコードを記述します。
using UnityEngine;
public class CubeMover : MonoBehaviour
{
public float moveSpeed = 5f;
private Rigidbody rb;
private void Start()
{
rb = GetComponent<Rigidbody>();
}
private void FixedUpdate()
{
float moveX = Input.GetAxis("Horizontal");
float moveZ = Input.GetAxis("Vertical");
Vector3 move = new Vector3(moveX, 0f, moveZ) * moveSpeed;
rb.velocity = new Vector3(move.x, rb.velocity.y, move.z);
}
}
解説
Input.GetAxis("Horizontal")
→ A・Dキー(または←→キー)Input.GetAxis("Vertical")
→ W・Sキー(または↑↓キー)FixedUpdate()
→ Rigidbodyを扱うときに使うフレーム制御関数
WASDの入力をリアルタイムに取得し、Rigidbodyの速度として反映させます。
Cubeオブジェクトが回転してしまうときは…

Rigidbodyを使った移動では、オブジェクトが物理的に回転してしまうことがあります。
それが気になる場合は、Cubeのインスペクターで Constrains→Freeze Rotation
のX/Zにチェックを入れておくと、地面の上をまっすぐ動かすことができます。
今回はCubeオブジェクトの物理さしさを生かすため、回転はあえてそのままでもOKです。
お好みに合わせて設定してみてください。
Cubeオブジェクトをジャンプさせる(スペースキー)

キャラクターのジャンプは、ゲームらしい操作のひとつです。
ここでは Cube にジャンプ機能を追加して、スペースキーで「ぴょんっ」と跳ねる動きを実装してみましょう!
スクリプトにジャンプ処理を追加する
前回作成した CubeMover.cs
に、ジャンプのための変数と処理を追記します。
public float jumpForce = 5f;
private bool isGrounded = true;
そして Update()
メソッド内に以下の処理を追加します
if (Input.GetKeyDown(KeyCode.Space) && isGrounded)
{
rb.AddForce(Vector3.up * jumpForce, ForceMode.Impulse);
isGrounded = false;
}
このコードではスペースキー押下と「地面にいるとき」にジャンプできるようにしています。
地面に触れたら再びジャンプできるようにする
ジャンプのあとに再びジャンプができるように、OnCollisionEnter()
を使って「何かに触れたら着地したとみなす」処理を追加します。
private void OnCollisionEnter(Collision collision)
{
isGrounded = true;
}
ここではすべてのオブジェクトとの接触で isGrounded = true
にしていますが、
あとで「地面だけに限定する」処理も追加可能です。今回は省略します。
完成したジャンプコードの全体像
最終的に、CubeMover.cs
は以下のようになります。
using UnityEngine;
public class CubeMover : MonoBehaviour
{
public float moveSpeed = 5f;
private Rigidbody rb;
public float jumpForce = 5f;
private bool isGrounded=true;
private void Start()
{
rb = GetComponent<Rigidbody>();
}
private void Update()
{
// ジャンプ
if (Input.GetKeyDown(KeyCode.Space) && isGrounded)
{
rb.AddForce(Vector3.up * jumpForce, ForceMode.Impulse);
isGrounded = false;
}
}
private void FixedUpdate()
{
float moveX = Input.GetAxis("Horizontal");
float moveZ = Input.GetAxis("Vertical");
Vector3 move = new Vector3(moveX, 0f, moveZ) * moveSpeed;
rb.velocity = new Vector3(move.x, rb.velocity.y, move.z);
}
private void OnCollisionEnter(Collision collision)
{
// 地面に触れたら再ジャンプ可能にする(Planeなど)
isGrounded = true;
}
}
動きの完成!プレイしてみよう

これまでの作業で、CubeはWASDキーでの移動とスペースキーでのジャンプができるようになりました。
ここでは、実際にプレイして動作を確認してみましょう。
ゲームを再生して操作を試そう
Unityエディター上部の【▶️再生ボタン】をクリックすると、
ゲームがスタートします。
以下の操作を試してみましょう
操作キー | 内容 |
---|---|
W / A / S / D | 前後左右に移動 |
Space | ジャンプ(空中では無効) |
スムーズに動けば成功です!
思った通り動かないときのチェックポイント
うまく動かない場合は、次のポイントを確認してみてください:
移動しない場合
- RigidbodyがCubeにアタッチされているか
- スクリプト内の
moveSpeed
が0になっていないか
ジャンプしない場合
Input.GetKeyDown(KeyCode.Space)
がUpdate()
に書かれているかisGrounded
がfalse
のままになっていないか(OnCollisionEnter
の書き忘れ)
回転してしまうのが嫌な場合
- Rigidbody の Freeze Rotation(X/Z) にチェックを入れると安定します
まとめ|操作制御の第一歩を体験しよう!

今回の記事では、Unityで最もシンプルな3Dオブジェクト「Cube」を使って、
- キーボードでの移動(WASD)
- ジャンプ(スペースキー)
- Rigidbodyによる物理挙動の基本
を一つずつ確認しながら、ゲームの操作制御の基礎を体験しました。
これだけのシンプルな構成でも、
- 動くって面白い!
- ゲームっぽくなってきた!
- Rigidbodyってこう使うんだ!
という、小さな「気づき」と「できた!」を得られたはずです。
それこそが、Unity初心者にとって一番大切なステップです。
次のステップに進みたくなったら…
もしあなたが「もっと見た目を整えたい」「キャラクターっぽくしたい」と思ったら、
次は アニメーション付きの3Dキャラクターで、同じように移動やジャンプを実装してみましょう!

あるいは、**カメラの視点をプレイヤーに追従させたい!**と感じたなら、
次は Unity標準のカメラを使って、カメラをキャラクターに追従させる方法をチェックしましょう。

読者様への一言

Unityの開発は、ひとつずつ動かして試すことが最短ルートです。
うまくいかなくても大丈夫。
次に「なぜだろう?」と手を止めて考える時間こそが、
あなたの実力をグンと伸ばしてくれます。
📌このブログでは、Unityをこれから学ぶ方へ向けて、
「動く楽しさ」「わかる安心感」を軸に、丁寧な記事を発信しています。
また一歩進みたいときに、ぜひ戻ってきてくださいね!
次のチャレンジも、一緒に取り組んでいきましょう😊
使用しているソフトウェア
- Unity Editor 2022.3.61f1(LTS)
※本文中のエディター画面のスクリーンショットは、Unity Technologies社が提供する開発環境の画像を紹介・解説目的で引用しています。