リンドくん
たなべ先生、Unityでゲーム作ってると同じ敵キャラをたくさん配置したいんですけど、毎回作るのって面倒ですよね...
たなべ
そんなときこそPrefab(プレハブ)の出番なんだ。
一度作ったオブジェクトを何度でも使い回せる「テンプレート」のようなものだよ。今日はこの便利な機能を一緒に学んでいこう!
ゲーム開発を始めたばかりの方が必ず直面する課題の一つが、同じようなオブジェクトを効率的に管理する方法です。
敵キャラクター、アイテム、障害物など、ゲームには同じ種類のオブジェクトが何度も登場します。
これらを毎回一から作り直していては、時間がかかる上に、後から修正が必要になったときに大変な作業量になってしまいます。
そこで登場するのがPrefab(プレハブ)という機能です。
Prefabを使えば、一度作成したゲームオブジェクトをテンプレートとして保存し、何度でも再利用できるようになります。さらに、元のPrefabを修正すれば、シーン内に配置したすべてのインスタンスに変更が反映されるという強力な特徴があります。
この記事では、Unity初心者の方でも理解できるよう、Prefabの基本概念から実践的な使い方まで、段階的に解説していきます。
HackATAは、エンジニアを目指す方のためのプログラミング学習コーチングサービスです。 経験豊富な現役エンジニアがあなたの学習をサポートします。
✓ 質問し放題
✓ β版公開中(2025年内の特別割引)
リンドくん
Prefabって具体的にはどういうものなんですか?
たなべ
簡単に言うと、ゲームオブジェクトの設計図だね。クッキーの型抜きをイメージするとわかりやすいよ。
一つの型(Prefab)から、同じ形のクッキー(インスタンス)をいくつも作れるんだ。
Prefabとは、GameObjectとそのすべてのコンポーネント、プロパティ値を含むアセットファイルです。
プロジェクトフォルダに保存され、何度でもシーンに配置(インスタンス化)できます。
Prefabには以下のような特徴があります。
ゲーム開発において、Prefabは以下のような場面で威力を発揮します。
例えば、100体の敵キャラクターがゲーム内に登場するとします。Prefabを使わない場合、各敵の体力を変更したいときは100個のオブジェクトを一つずつ修正する必要があります。
しかし、Prefabを使えば、元のPrefabを一度修正するだけで、すべての敵に変更が適用されるのです。
これがPrefabの最大のメリットであり、ゲーム開発を効率化する強力な武器となります。

プレハブの概念図 一つのPrefabから複数のインスタンスが生成される様子
リンドくん
実際にPrefabを作るにはどうすればいいんですか?
たなべ
作り方はとってもシンプルだよ!基本的にはヒエラルキーからプロジェクトフォルダにドラッグ&ドロップするだけなんだ。順を追って見ていこう。
まず、Prefab化したいゲームオブジェクトをシーン内に作成します。
例えば、敵キャラクターを作る場合は以下のようになります。

プレハブ化したいオブジェクトを作成
オブジェクトの設定が完了したら、いよいよPrefab化します。
これだけで、再利用可能なPrefabの完成です!

ヒエラルキーからプロジェクトフォルダへのドラッグ&ドロップ操作の画面
作成したPrefabは以下のように使用できます。

プレハブをシーンに追加
同じPrefabを何度でもシーンに配置できます。
それぞれのインスタンスは、位置や回転などのTransform値は個別に設定できる一方で、コンポーネントの設定やスクリプトの内容は元のPrefabと同期されます。
リンドくん
Prefabを作った後に修正したくなったらどうするんですか?
たなべ
それがPrefabの便利なところなんだ!編集方法は2つあって、どちらを使うかで作業効率が変わってくるよ。
UnityのPrefabモードを使えば、Prefab自体を直接編集できます。
この方法のメリットは、Prefabに集中して編集できることです。シーン内の他のオブジェクトに邪魔されず、細かい調整が可能です。
シーン内のPrefabインスタンスを編集し、その変更を元のPrefabに反映させる方法もあります。
この方法は、シーン内での見た目を確認しながら編集できるというメリットがあります。
Prefabバリアントは、元のPrefabを継承して少し異なるバージョンを作る機能です。
例えば、基本の「敵キャラクター」Prefabから、以下のようなバリアントを作成できます。
バリアントは元のPrefabの変更を継承するため、共通部分の管理が容易になります。
リンドくん
Prefabを使うときに気をつけることってありますか?
たなべ
いくつか重要なポイントがあるよ。これらを知っておくことで、トラブルを避けながら効率的に開発できるようになるんだ。
Prefabが増えてくると、管理が大変になります。最初から適切なフォルダ構成を心がけましょう。
このようにカテゴリごとにフォルダを分けることで、必要なPrefabをすぐに見つけられます。
Prefabの名前は、その役割が一目でわかるようにしましょう。
Enemy_Zombie, Item_HealthPotion, Bullet_PlayerLaserPrefab1, New, Testチーム開発では、命名規則を統一することが特に重要です。
Prefabの中に別のPrefabを含めることができます。これをネストPrefabと呼びます。
例えば、「車」というPrefabの中に以下を含める場合があります。
これにより、部品を個別に管理しながら、全体としても扱えるようになります。
Prefabインスタンスに加えた変更(オーバーライド)は、以下の3つの選択肢があります。
特別な理由がない限り、オーバーライドは最小限に抑えることをおすすめします。多くのオーバーライドがあると、管理が複雑になります。
Prefabファイルを削除したり、参照が切れたりすると、「Missing Prefab」というエラーが発生します。これを避けるため以下の対策をしましょう。
リンドくん
Prefabってすごく便利ですね!これを使いこなせれば、ゲーム開発がもっと楽しくなりそうです!
たなべ
そうだね!Prefabはゲーム開発の基本中の基本だから、ぜひマスターしてほしいな。最初は簡単なものから始めて、徐々に複雑なPrefabにも挑戦していこう!
この記事では、Unity初心者の方向けに、Prefabの基本から実践的な使い方まで解説してきました。
Prefabをマスターすることは、Unityを使いこなす上での重要なステップです。しかし、ゲーム開発にはまだまだ学ぶべきことがたくさんあります。
ぜひPrefabを活用して、効率的で楽しいゲーム開発を体験してください。