はじめに
Unityでゲーム開発をしていると、「複数のオブジェクトを効率よく配置したい!」と思うこと、ありませんか? そんなときに便利なのが**プレハブ(Prefab)**です。プレハブを使うと、同じオブジェクトを簡単に複数生成できます。でも、「位置を変えたいけどどうやるの?」と悩む人も多いはず。
この記事では、プレハブを生成するときに個別の位置を設定する方法を詳しく解説します。スクリプトの具体例も紹介するので、Unity初心者の方でも安心して取り組めますよ!さっそく、一緒に進めてみましょう。
Unityを触ったことがないという方はコチラの記事から見てみてください!
1 プロジェクトの準備
- Unityプロジェクトを開く
まずは、Unityで新しいプロジェクトを作成、または既存のプロジェクトを開きます。プロジェクトのテンプレートは「3D」を選択しておくとスムーズです。 - プレハブ(Prefab)の作成
- ヒエラルキー(Hierarchy)ウィンドウを右クリックします。
- **「3D Object」→「Sphere」**を選択し、シーンにキューブを作成します。
- 作成したキューブを「プロジェクト(Project)」ウィンドウにドラッグ&ドロップして、プレハブとして保存します。


プレハブは、Unityでオブジェクトを再利用する際に便利な機能です。ここではキューブを例にしましたが、どんなオブジェクトでもプレハブ化できます。
2. 実装の手順
1.新しいスクリプトを作成
スクリプトを作成してプレハブ生成を制御します。以下の手順で進めてください:
- プロジェクトウィンドウを右クリックします。
- **「Create」→「C# Script」**を選択します。
- スクリプト名を「PrefabSpawner」と名前をつけてください。
2.スクリプトの記述
準備が整ったら、プレハブを指定した位置に生成するスクリプトを記述します。以下のコードをスクリプトファイルに入力してください:
using UnityEngine;
public class PrefabSpawner : MonoBehaviour
{
// 生成するプレハブ
public GameObject prefab;
// 生成位置を指定するための配列
public Vector3[] spawnPositions;
void Start()
{
// 配列内の各位置にプレハブを生成
foreach (Vector3 position in spawnPositions)
{
Instantiate(prefab, position, Quaternion.identity);
}
}
}
3.コードのポイント
public GameObject prefab;- 生成したいプレハブをインスペクターで設定できるようにします。
public Vector3[] spawnPositions;- 配列を使って複数の生成位置を指定できます。
Instantiate- プレハブをシーン内に生成します。ここでは、指定した座標にプレハブを生成する処理を行っています。
3. インスペクターでの設定
スクリプトを書いたら、Unityエディタで設定を行います。
- スクリプトをアタッチ
作成したスクリプトをシーン内のGameObjectにアタッチします。(例.空のオブジェクト) - Prefab(生成するプレハブ)を指定
- インスペクターの「Prefab」フィールドに、生成したいプレハブをドラッグ&ドロップします。
- 生成位置を指定
- 「Spawn Positions」に生成したい位置を1つずつ入力します。
例:Element 0: (0, 0, 0)Element 1: (1, 0, 1)Element 2: (-1, 0, -1)
- 「Spawn Positions」に生成したい位置を1つずつ入力します。
4.実行して確認
設定が完了したら、シーンを再生してスクリプトが正しく動作するか確認しましょう。
- 再生ボタンをクリック
Unityエディタ上部の「再生」ボタンを押してシーンを再生します。 - 生成されたオブジェクトを確認
- 指定した位置にプレハブが生成されているか確認してください。
- 配列で設定したすべての座標にオブジェクトが生成されていれば成功です!

5.エラーや問題がある場合
もし想定通りに動作しない場合は、以下を確認してください:
- プレハブの指定が正しいか
- インスペクターで「Prefab」フィールドに適切なプレハブが設定されているか確認します。
- 座標の指定ミスがないか
- 負の値や大きすぎる値を指定していないか確認してください。
- スクリプトにエラーがないか
- Unityの「Console」タブをチェックして、エラーメッセージが表示されていないか確認します。
🎁 オブジェクト生成が劇的に効率化!初心者でも扱いやすい「Easy Object Pooling」
「Instantiateで重くなる…」「大量のオブジェクトをスムーズに扱いたい」——そんな悩みを解決するのが、Unity公式ストアでも大人気のアセット【Easy Object Pooling】です!
このアセットを使えば、カスタム座標にPrefabを瞬時に生成&再利用でき、負荷の少ないスマートな処理が可能に。難しい設定は一切ナシ、インスペクターからポチポチ操作するだけで使えるので、初心者でも即導入OK!
特にこんな方におすすめ:
- クリック位置にオブジェクトを生成したい
- ゲーム中に何度も同じオブジェクトを出現させたい
- 処理落ちせずにスムーズなゲームプレイを実現したい
👇こちらからチェックしてみてください👇
👉 Easy Object PoolingをAsset Storeで見る
あわせて読みたい
UnityでPrefabのカスタム配置に関心がある方は、以下の記事もぜひチェックしてみてください!
- 🎯 UnityでPrefabを順番に生成してみよう
Prefabの管理をより効率的に行いたい方におすすめ!順番に出す方法を解説しています。 - 🧩 Unityでランダムな位置にオブジェクトを連続生成する方法
複数のPrefabをバラバラの位置に出したいときに役立つスクリプト例を紹介しています。 - 🧲 Unityで触れたオブジェクトをn秒後に削除する方法【初心者向け】
Prefab配置後の動作として「数秒後に削除」などの処理を加えたいときに便利です。 - 🧱 Unity初心者必見!クリックでPrefab生成&UIスライダーでサイズ調整をする方法
Prefab生成+見た目の調整をUIから操作したい方にピッタリの内容です。 - 🚀 Unity初心者でも簡単!InputFieldでテキストを配列に順番に格納する方法
Prefab名や種類を入力ベースで管理・配置したい方に参考になります。
まとめ
今回の記事では、Unityでプレハブを位置指定して生成する方法を解説しました。これを習得すれば、以下のような場面で役立ちます:
- 敵キャラやアイテムを複数の場所に配置する
- 複雑なステージ構成を効率よく作成する
- スクリプトを使ったオブジェクト生成の基礎を学ぶ
プレハブを個別の位置に生成する方法は、Unityでゲーム開発を行う上でとても重要なスキルです。最初はスクリプトを書くのが難しいと感じるかもしれませんが、何度か試すうちに必ず慣れていきます。

もし実装でつまづいたら、この記事を見直したり、公式ドキュメントを参考にしてみてください。また、「ランダムな位置で生成したい」「生成数をコントロールしたい」など、さらなる発展も可能ですので、ぜひチャレンジしてみてください!








※当サイトはアフィリエイト広告を利用しています。リンクを経由して商品を購入された場合、当サイトに報酬が発生することがあります。
※本記事に記載しているAmazon商品情報(価格、在庫状況、割引、配送条件など)は、執筆時点のAmazon.co.jp上の情報に基づいています。
最新の価格・在庫・配送条件などの詳細は、Amazonの商品ページをご確認ください。