ここではUnityの代表的な機能、プレファブの使い方を学びます プレファブを利用すると、プロジェクトウィンドウに配置している元の素材を利用して、ステージ上に自由にいくつでもオブジェクトを生成できるようになります。
元になるオブジェクトを作成しよう

まずはプレファブの元となる3Dオブジェクトを作成します。
- ヒエラルキーウィンドウから、
Create > 3D Object > Sphereで球体を作成しましょう - 座標をリセットしておきたいので、
インスペクタウィンドウ > Transform > ギアアイコン > Resetを実行しましょう - プログラムで動的に生成した後、衝突させたり物理的な動きを加えたいので
Rigidbodyを追加しましょう
コンポーネントの追加方法を忘れてしまった場合は、以下のページで復習しましょう。
オブジェクトをプレファブに変換しよう

次に作成したオブジェクトをプレファブに変更します。
オブジェクトをプレファブに変更するには、ヒエラルキーウィンドウ上のSphereオブジェクトを、プロジェクトウィンドウ上にドラッグする事でプレファブ化する事ができるようになっています。
プレファブに変更した要素は
- インスペクタウィンドウ上に表示されているアイコンが水色になっている
- ヒエラルキーウィンドウ上に表示されている名前が水色になっている
など、Unityエディタの表示上でプレファブである事が確認できるようになっているので、覚えておきましょう。
作成したプレファブは /Assets/Prefabs 以下に入れておきましょう。
プレファブを作成し、スクリプトを書き加えると、ヒエラルキーウィンドウやプロジェクトウィンドウが煩雑になってきます。毎回綺麗に整理するようにこころがけましょう。
プレファブを生成するスクリプトを書こう
次に先ほど作成したプレファブを生成するスクリプトを書いていきましょう。
- プロジェクトウィンドウから、
Create > C# Scriptでスクリプトを作成しSpawnerと名前をつけます - 中身には下記のプログラムを書いておきます
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.InputSystem;
public class Spawner : MonoBehaviour
{
// 外部からオリジナルのプレファブを登録できるようにする
public GameObject original;
void Update()
{
// スペースキーを押している場合には プレファブを複製する
if (Keyboard.current.spaceKey.isPressed)
{
// transformの位置にoriginalを複製する
Instantiate(original, transform.position, Quaternion.identity);
}
}
}
キーボードの入力は、UnityのInput Systemという仕組みを使って調べています。
using UnityEngine.InputSystem;で、スクリプトからInput Systemを使えるようにしていますKeyboard.currentが今つながっているキーボード、spaceKeyがスペースキーを表していますisPressedはキーを押している間ずっとtrueになります
以前のUnityでは Input.GetKey(KeyCode.Space) と書いていましたが、Unity 6で新しく作ったプロジェクトではこの書き方は動かず、再生するとコンソールウィンドウに InvalidOperationException というエラーが表示されます。
古い記事や動画を参考にする時は、Input.GetKey などの部分をInput Systemの書き方に読み替えましょう。
スクリプトを動かすゲームオブジェクトを用意しよう
最後にステージ上にプレファブを登場させるゲームオブジェクトを作成します。
まず、スクリプトを動かす為の空のゲームオブジェクトを作成します。 下記の3つの方法で作成する事ができるようになっています。
- メインメニューから、
GameObject > Create Empty - ヒエラルキーウィンドウから、
Create > Create Empty - ヒエラルキーウィンドウで Cmd + Shift + N
また、作成したゲームオブジェクトですが、
- 名前を
GameObjectから、Spawnerと変更しておきましょう - 座標をリセットしておきたいので、
インスペクタウィンドウ > Transform > ギアアイコン > Resetを実行しましょう
次に今作成したゲームオブジェクトに先ほど作成したスクリプトをアタッチします。
最後に、インスペクタウィンドウ上のスクリプトに表示されている値、Originalに生成するプレファブを登録します。
プロジェクトウィンドウのプレファブSphereを、インスペクタウィンドウにドラッグドロップして登録ができます。

スクリプトの作成方法を忘れてしまった場合は、以下のページで復習しましょう。
再生してみよう
再生する前に、現在ステージ上に配置されているオリジナルのSphereは必要が無いので削除しておきましょう。

- Cmd + P でプロジェクトを再生し、
Spaceキーを押すとプレファブが大量に生成されます。
余裕があれば、次の課題にも挑戦してみましょう。
- Cubeのプレファブを作成してみよう
- プレファブのマテリアルやPhysicマテリアルを変更してみよう
- 地面を作成しよう
- 画面外に飛び去ったオブジェクトを削除してみよう
- 0.5秒ごとに1つ生成されるようにしてみよう
- 生成したオブジェクトに力を加えてみよう