プレイヤーを作ってみよう
1. 球(Player)を作ってみよう
Section titled “1. 球(Player)を作ってみよう”次はプレイヤーになるGameObject球(Sphere)を作ります。先ほどのCubeとは違う、ショートカットメニューを使った方法で作ってみましょう。
-
Sphereの作成 Hierarchy Window で右クリックをして、表示されたメニューから 3D Object > Sphere を選択しましょう。すると Scene View の真ん中に球が表示されます。
-
位置の調整 球の Inspector の Position を確認し、変な位置に置かれていたら X: 0, Y: 5, Z: 0 に設定してください。Yを5に設定するのは、床に埋まらないようにするためです。
-
見た目を整える こちらの球にも、先ほどの手順(Assets > Create > Material)で新しいマテリアルを作って、好きな色をつけてあげましょう。
2. 球に重力をつけてみよう
Section titled “2. 球に重力をつけてみよう”オブジェクトに物理法則を適用する「Rigidbody(リジッドボディ)」を追加します。
-
Rigidbodyコンポーネントの追加

球を選択し、Inspectorの一番下にある Add Component をクリックします。検索窓に「Rigidbody」と打ち込むか、Physics > Rigidbody を選んでください。
-
重力の設定を確認

追加された Rigidbody コンポーネント内の Use Gravity にチェックが入っていることを確認してください。これで球に重力が働くようになります。
3. プレイヤーを動かすスクリプト(C#)を作ろう
Section titled “3. プレイヤーを動かすスクリプト(C#)を作ろう”いよいよプログラミングの工程です。Unity 6では最新の入力方式(Input System)に対応したコードを使用します。
-
Scriptsフォルダの作成

Project Window で 右クリック > Create > Folder を選択し、名前を「Scripts」に変更します。
-
スクリプトファイルの作成

作成した Scripts フォルダを開き、その中で 右クリック > Create > Scripting > Empty C# Script を選択します。名前は「PlayerController」に変更してください。
-
コードの書き換え 作成したファイルをダブルクリックしてエディタで開き、元からあるコードをすべて消して、下記のコードを貼り付けて保存(Ctrl+S / Cmd+S)してください。
コピペでOKだけど、最低限コメント(//の後の文)を読んで「何をしているか」理解しておくと、自分の力になるよ!
using UnityEngine;using UnityEngine.InputSystem;public class PlayerController : MonoBehaviour{// 転がる速さを調整する変数(Inspectorから変更可能)public float speed = 3f;// 物理演算コンポーネントを入れる変数private Rigidbody rb;void Start(){// ゲーム開始時に自分自身のRigidbodyを取得して変数に入れるrb = GetComponent<Rigidbody>();}void Update(){// キーボードの入力を取得(新しい方式)Vector2 moveInput = Vector2.zero;if (Keyboard.current != null){// 上下左右のキー入力を数値(-1 ~ 1)として受け取りますfloat x = 0;float y = 0;if (Keyboard.current.wKey.isPressed || Keyboard.current.upArrowKey.isPressed) y = 1;if (Keyboard.current.sKey.isPressed || Keyboard.current.downArrowKey.isPressed) y = -1;if (Keyboard.current.aKey.isPressed || Keyboard.current.leftArrowKey.isPressed) x = -1;if (Keyboard.current.dKey.isPressed || Keyboard.current.rightArrowKey.isPressed) x = 1;moveInput = new Vector2(x, y);}// 入力方向を3D空間のベクトル(横・奥行き)に変換Vector3 movement = new Vector3(moveInput.x, 0, moveInput.y);// Rigidbodyに力を加えて玉を転がすrb.AddForce(movement * speed);}}
4. スクリプトを球に適用させよう
Section titled “4. スクリプトを球に適用させよう”コードの編集が終わったら、Unityエディタに戻る前に必ず セーブ(保存) をしましょう。
-
スクリプトの保存 コードエディタ(Visual Studio Codeなど)で、Ctrl + S(Macは Cmd + S)を押して保存します。
-
シーン(ステージ)の保存 Unityエディタに戻ったら、エディタ上でも Ctrl + S(Macは Cmd + S)を押して、現在のシーンを保存しておきましょう。
※ 初めてセーブする場合 「Save Scene」というウィンドウが開きます。

- 保存場所: Assets > Scenes フォルダの中を選択します。(おそらくセーブ画面で自動的に開いているはずです)
- ファイル名: 「MainScene」など、好きな名前をつけて「保存」を押してください。
-
スクリプトのアタッチ Hierarchyで「Sphere」をクリックしてInspectorを表示させます。作成したスクリプト(PlayerController)を、Inspectorの「Add Component」付近にドラッグ&ドロップして合体させます。

-
テストプレイ! 画面上部の ▶︎(プレイボタン) を押して動かしてみましょう!十字キーやWASDキーで玉が転がれば成功です。
-
速さを調整する 玉の動きが速すぎたり遅すぎたりしたら、SphereのInspectorにある「Speed」の値を変更して、自分好みの操作感に調整してみてください。
5. ステージに「壁」を作ろう
Section titled “5. ステージに「壁」を作ろう”このままだと玉がすぐに場外へ落ちてしまうので、4つの壁を設置しましょう。 GameObject > 3D Object > Cube を4つ作成し、名前と数値を以下の表に合わせて設定してください。
壁のトランスフォーム設定一覧
Section titled “壁のトランスフォーム設定一覧”| オブジェクト名 | Position (X, Y, Z) | Scale (X, Y, Z) | 役割 |
|---|---|---|---|
| Wall-1 | ( 0, 1, 4.5 ) | ( 10, 1, 1 ) | 奥側の壁 |
| Wall-2 | ( 0, 1, -4.5 ) | ( 10, 1, 1 ) | 手前側の壁 |
| Wall-3 | ( 4.5, 1, 0 ) | ( 1, 1, 10 ) | 右側の壁 |
| Wall-4 | ( -4.5, 1, 0 ) | ( 1, 1, 10 ) | 左側の壁 |
マテリアルも作って、壁を好きな色に変えてみてね!
たったこれだけの設定で、オブジェクトに自然な重力や衝突の動きがつくのはUnityのすごいところだね!