複製が簡単にできる!Unityでプレハブ(Prefabs)を作る方法【初心者向け】

Unityで【プレハブ(Prefabs)を作る方法】を初心者向けに解説した記事です。プレハブとは、オブジェクトを複製する機能のことです。基本的な作り方から、インスタンスでの受け継がれ方まで理解することができます。

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営する教育×テクノロジーのWebメディアです。初心者でもすぐ勉強できる記事が2,000以上あります。

Unityを使い始めたばかりの初心者向けに、Unityの使い方の基礎を紹介する記事です。

今回は複製ができるプレハブ(Prefabs)がテーマです。

 

なお、本記事はTechAcademyのUnity入門オンライン講座の内容をもとにしています。

 

田島悠介

今回はプレハブの使い方を実践してみよう。

大石ゆかり

田島メンター!!プレハブというのは何ですか〜?

田島悠介

オブジェクトとそのコンポーネントやプロパティをひとつに格納したものだよ。同じ機能を持ったオブジェクトを複製したいときに役立つんだ。さっそく作成してみよう。

大石ゆかり

分かりました!

 

プレハブ(Prefubs)とは

プレハブ(Prefabs)とは作成済みのオブジェクトを複製する機能のことです。元となるプレハブのInspector上の設定をも含めて、簡単に同じ性質のオブジェクトを多数作成することができます。また、プレハブからオブジェクトを作ることをインスタンス化と呼びます。インスタンスとは「実体」と言う意味です。

少しプログラミング寄りの話になりますが、オブジェクト指向で言うクラスがプレハブに、プレハブから作られたインスタンスはオブジェクトインスタンスということになります。

 

 

プレハブを作成する

では早速プレハブを作っていきましょう。

プレハブを作るには、元となるオブジェクトが必要です。今回は例としてわかりやすように、オブジェクトはCubeにします。

cube

 

プレハブはProjectビューの[Create]→[Prefab]で作成できます。

Prefab

 

そうするとProjectビューにNew Prefabという項目ができますので、HierarchyビューからCubeをここにドラッグ&ドロップします。

New Prefab

これで、New PrefabはCubeのプレハブとなります。また、CubeはNew Prefabのインスタンスの一つ目ということになります。

 

田島悠介

これがプレハブの作成方法だよ。

大石ゆかり

手順自体はとても簡単なんですね。

田島悠介

そうだね。次はこのプレハブからオブジェクトを画面に追加してみよう。

 

続いて、ProjectビューからNew PrefabをHierarchyビューにドラッグ&ドロップすると、新しいインスタンスが作成されます。

新しいインスタンス

同じCubeが2つ表示されることがわかると思います。

 

なお、プレハブが持っている要素は全てインスタンスで受け継がれます。例えば、ProjectビューでプレハブのYスケールを変えると、この画像のようにインスタンスのスケールも同じように変わりました。

インスタンス引き継ぎ

 

ただし、インスタンス自体はそれぞれ独立したオブジェクトですので、一つのインスタンスに変更を加えても他のインスタンスやプレハブには影響を及ぼしません。

オブジェクト

そのため、この状態で新しいインスタンスを作成すると、元のプレハブと同じ状態のインスタンスが作成されます。

 

実際にゲームを作るときはこのプレハブの概念を知っておくと便利です。

例えば、シューティングゲームの敵機や迷路ゲームの障害物など、同じオブジェクトを多数配置して、それぞれの動作はプレハブに設定したスクリプトで規定するといったことが可能になります。

 

ぜひプレハブを使いこなしてゲームを作ってみてください。

 

田島悠介

インスタンスを複数画面上に設置した状態で、Project内のプレハブのScaleを編集してみよう。

大石ゆかり

あ!設置したインスタンスの全部の大きさが変わりました!

田島悠介

あとで手を加える可能性のある、同種のオブジェクトを複数配置したいときなどにプレハブを活用してみよう。きっと役立つはずだよ。

大石ゆかり

なるほど、頭に入れておきます。ありがとうございました!

 

さらにUnityを使いこなしたい場合は、UnityでJoystick(ジョイスティック)を追加する方法も合わせてご覧ください。

[お知らせ]TechAcademyではオリジナルゲームアプリが公開できるUnityオンラインブートキャンプを開催しています。現役Unityエンジニアのサポートで効率的に学びたい場合はご検討ください。