フリーキーズ | 独学プログラミング

Unity Prefab入門!再利用可能オブジェクトの作り方を初心者向けに解説

リンドくん

リンドくん

たなべ先生、Unityでゲーム作ってると同じ敵キャラをたくさん配置したいんですけど、毎回作るのって面倒ですよね...

たなべ

たなべ

そんなときこそPrefab(プレハブ)の出番なんだ。
一度作ったオブジェクトを何度でも使い回せる「テンプレート」のようなものだよ。今日はこの便利な機能を一緒に学んでいこう!

ゲーム開発を始めたばかりの方が必ず直面する課題の一つが、同じようなオブジェクトを効率的に管理する方法です。

敵キャラクター、アイテム、障害物など、ゲームには同じ種類のオブジェクトが何度も登場します。
これらを毎回一から作り直していては、時間がかかる上に、後から修正が必要になったときに大変な作業量になってしまいます。

そこで登場するのがPrefab(プレハブ)という機能です。
Prefabを使えば、一度作成したゲームオブジェクトをテンプレートとして保存し、何度でも再利用できるようになります。さらに、元のPrefabを修正すれば、シーン内に配置したすべてのインスタンスに変更が反映されるという強力な特徴があります。

この記事では、Unity初心者の方でも理解できるよう、Prefabの基本概念から実践的な使い方まで、段階的に解説していきます。

プログラミング学習でお悩みの方へ

HackATAは、エンジニアを目指す方のためのプログラミング学習コーチングサービスです。 経験豊富な現役エンジニアがあなたの学習をサポートします。

✓ 質問し放題

✓ β版公開中(2025年内の特別割引)

HackATAの詳細を見る

Prefabとは何か?基本概念を理解しよう

リンドくん

リンドくん

Prefabって具体的にはどういうものなんですか?

たなべ

たなべ

簡単に言うと、ゲームオブジェクトの設計図だね。クッキーの型抜きをイメージするとわかりやすいよ。
一つの型(Prefab)から、同じ形のクッキー(インスタンス)をいくつも作れるんだ。

Prefabの定義

Prefabとは、GameObjectとそのすべてのコンポーネント、プロパティ値を含むアセットファイルです。
プロジェクトフォルダに保存され、何度でもシーンに配置(インスタンス化)できます。

Prefabには以下のような特徴があります。

  • 再利用性 - 一度作成すれば、複数のシーン、複数の場所で使用可能
  • 一括管理 - 元のPrefabを編集すれば、すべてのインスタンスに変更が反映される
  • 効率性 - 同じオブジェクトを何度も作り直す手間が省ける
  • 保守性 - バグ修正や機能追加が容易になる

なぜPrefabが重要なのか

ゲーム開発において、Prefabは以下のような場面で威力を発揮します。

  1. 敵キャラクターの配置 - 同じ敵を複数のステージで使い回す
  2. アイテムの生成 - ランダムにアイテムを出現させる
  3. UIエレメントの統一 - ボタンやメニューのデザインを統一
  4. 弾丸やエフェクトの生成 - 動的にオブジェクトを生成する

例えば、100体の敵キャラクターがゲーム内に登場するとします。Prefabを使わない場合、各敵の体力を変更したいときは100個のオブジェクトを一つずつ修正する必要があります。
しかし、Prefabを使えば、元のPrefabを一度修正するだけで、すべての敵に変更が適用されるのです。

これがPrefabの最大のメリットであり、ゲーム開発を効率化する強力な武器となります。

プレハブの概念図 一つのPrefabから複数のインスタンスが生成される様子

プレハブの概念図 一つのPrefabから複数のインスタンスが生成される様子

Prefabの作成方法 - 基本的な手順

リンドくん

リンドくん

実際にPrefabを作るにはどうすればいいんですか?

たなべ

たなべ

作り方はとってもシンプルだよ!基本的にはヒエラルキーからプロジェクトフォルダにドラッグ&ドロップするだけなんだ。順を追って見ていこう。

ステップ① ゲームオブジェクトの作成

まず、Prefab化したいゲームオブジェクトをシーン内に作成します。

1. Hierarchyウィンドウで右クリック
2. 「3D Object」→「Cube」を選択(例として立方体を作成)
3. 必要に応じてコンポーネントを追加
   - Transform(位置、回転、スケール)を調整
   - Materialを適用して色を変更
   - Rigidbodyを追加して物理演算を有効化

例えば、敵キャラクターを作る場合は以下のようになります。

  • 3DモデルまたはSpriteを配置
  • Collider(当たり判定)を追加
  • Rigidbody(物理演算)を追加
  • スクリプト(動きや挙動を制御)を追加
プレハブ化したいオブジェクトを作成

プレハブ化したいオブジェクトを作成

ステップ② Prefabの作成

オブジェクトの設定が完了したら、いよいよPrefab化します。

1. Projectウィンドウに「Prefabs」フォルダを作成(整理のため)
2. Hierarchyのゲームオブジェクトを、Projectの「Prefabs」フォルダにドラッグ&ドロップ
3. 成功すると、Hierarchyのオブジェクト名が青色に変わる(Prefabインスタンスであることを示す)

これだけで、再利用可能なPrefabの完成です!

ヒエラルキーからプロジェクトフォルダへのドラッグ&ドロップ操作の画面

ヒエラルキーからプロジェクトフォルダへのドラッグ&ドロップ操作の画面

ステップ③ Prefabの使用

作成したPrefabは以下のように使用できます。

1. ProjectウィンドウからPrefabを選択
2. SceneビューまたはHierarchyにドラッグ&ドロップ
3. 配置したインスタンスの位置を調整
プレハブをシーンに追加

プレハブをシーンに追加

同じPrefabを何度でもシーンに配置できます。
それぞれのインスタンスは、位置や回転などのTransform値は個別に設定できる一方で、コンポーネントの設定やスクリプトの内容は元のPrefabと同期されます。

Prefabの編集と更新

リンドくん

リンドくん

Prefabを作った後に修正したくなったらどうするんですか?

たなべ

たなべ

それがPrefabの便利なところなんだ!編集方法は2つあって、どちらを使うかで作業効率が変わってくるよ。

方法① Prefabモードで直接編集

UnityのPrefabモードを使えば、Prefab自体を直接編集できます。

1. ProjectウィンドウでPrefabをダブルクリック
2. Prefabモードが開き、そのPrefabだけが表示される
3. 通常のシーン編集と同じように変更を加える
4. 完了したら左上の「<」ボタンでシーンに戻る

この方法のメリットは、Prefabに集中して編集できることです。シーン内の他のオブジェクトに邪魔されず、細かい調整が可能です。

方法② インスタンスをオーバーライド

シーン内のPrefabインスタンスを編集し、その変更を元のPrefabに反映させる方法もあります。

1. Hierarchy内のPrefabインスタンスを選択
2. Inspectorで必要な変更を加える
3. Inspectorの「Overrides」ドロップダウンをクリック
4. 「Apply All」で元のPrefabに変更を反映

この方法は、シーン内での見た目を確認しながら編集できるというメリットがあります。

Prefabバリアント(応用編)

Prefabバリアントは、元のPrefabを継承して少し異なるバージョンを作る機能です。

1. ProjectウィンドウでPrefabを右クリック
2. 「Create」→「Prefab Variant」を選択
3. バリアントに独自の変更を加える

例えば、基本の「敵キャラクター」Prefabから、以下のようなバリアントを作成できます。

  • 赤い敵 - 色とHPを変更
  • 青い敵 - 色と攻撃力を変更
  • ボス敵 - サイズとすべてのパラメータを変更

バリアントは元のPrefabの変更を継承するため、共通部分の管理が容易になります。

Prefab使用時のベストプラクティスと注意点

リンドくん

リンドくん

Prefabを使うときに気をつけることってありますか?

たなべ

たなべ

いくつか重要なポイントがあるよ。これらを知っておくことで、トラブルを避けながら効率的に開発できるようになるんだ。

フォルダ構成を整理する

Prefabが増えてくると、管理が大変になります。最初から適切なフォルダ構成を心がけましょう。

Assets/
├── Prefabs/
│   ├── Characters/
│   │   ├── Player/
│   │   └── Enemies/
│   ├── Items/
│   ├── UI/
│   └── Effects/

このようにカテゴリごとにフォルダを分けることで、必要なPrefabをすぐに見つけられます。

命名規則を統一する

Prefabの名前は、その役割が一目でわかるようにしましょう。

  • 良い例 - Enemy_Zombie, Item_HealthPotion, Bullet_PlayerLaser
  • 悪い例 - Prefab1, New, Test

チーム開発では、命名規則を統一することが特に重要です。

Prefabのネスト(入れ子)を活用する

Prefabの中に別のPrefabを含めることができます。これをネストPrefabと呼びます。

例えば、「車」というPrefabの中に以下を含める場合があります。

  • 車体(親Prefab)
    • タイヤ(子Prefab × 4)
    • エンジン音(子Prefab)
    • ライト(子Prefab × 2)

これにより、部品を個別に管理しながら、全体としても扱えるようになります。

オーバーライドの管理

Prefabインスタンスに加えた変更(オーバーライド)は、以下の3つの選択肢があります。

  1. Apply - 元のPrefabに反映させる
  2. Revert - 変更を破棄して元のPrefabに戻す
  3. そのまま - インスタンス固有の変更として保持

特別な理由がない限り、オーバーライドは最小限に抑えることをおすすめします。多くのオーバーライドがあると、管理が複雑になります。

Missing Prefabを避ける

Prefabファイルを削除したり、参照が切れたりすると、「Missing Prefab」というエラーが発生します。これを避けるため以下の対策をしましょう。

  • Prefabを削除する前に、使用箇所を確認する
  • プロジェクトをバージョン管理(Gitなど)して、誤削除に備える
  • 定期的にシーンをチェックして、Missing参照がないか確認する

まとめ

リンドくん

リンドくん

Prefabってすごく便利ですね!これを使いこなせれば、ゲーム開発がもっと楽しくなりそうです!

たなべ

たなべ

そうだね!Prefabはゲーム開発の基本中の基本だから、ぜひマスターしてほしいな。最初は簡単なものから始めて、徐々に複雑なPrefabにも挑戦していこう!

この記事では、Unity初心者の方向けに、Prefabの基本から実践的な使い方まで解説してきました。

Prefabのポイントをおさらい

  • Prefabは再利用可能なゲームオブジェクトのテンプレートで、作業効率を大幅に向上させる
  • 作成方法は簡単で、ヒエラルキーからプロジェクトフォルダへドラッグ&ドロップするだけ
  • 編集した内容はすべてのインスタンスに反映されるため、一括管理が可能
  • スクリプトから動的に生成でき、弾丸や敵キャラクターの出現に活用できる
  • 適切なフォルダ構成と命名規則により、プロジェクトの保守性が向上する

Prefabをマスターすることは、Unityを使いこなす上での重要なステップです。しかし、ゲーム開発にはまだまだ学ぶべきことがたくさんあります。

ぜひPrefabを活用して、効率的で楽しいゲーム開発を体験してください。

この記事をシェア

関連するコンテンツ