【Unity入門】Prefabでオブジェクトを複製してみる

2021年11月15日

Prefabとは

Prefabとはオブジェクトを使い回す仕組みのことです。

オブジェクトをPrefab化しておけば、そのPrefabを使ってオブジェクトを複製することができます。

例えば、情報1という情報を持ったオブジェクトを

Prefab化したとしましょう。

すると、そのPrefabを使って、

オブジェクトを複製することができます。

元となったPrefabに変更を加えるとPrefabを使って作った全てのオブジェクトに変更が反映されます。

例えば、元となったPrefabの情報1を

情報に2に変更したら、

そのPrefabを使って作ったオブジェクトは全て、同じように情報1から情報2へと変わります。

Prefab化するにはオブジェクトをHIerarchyウィンドウからProjectウィンドウにドラッグ&ドロップするだけです。

Prefabからオブジェクトを作るときはProjectウィンドウからHierarchyウィンドウにドラッグ&ドロップします。

実際に使ってみる

準備

それでは、実際にPrefabを使ってみましょう。

まずは、以前作成した、『Unity Basics』というプロジェクトを開いてください。

『Unity Basics』を開いたら、Prefabを作るシーンを作りましょう。

Scenesフォルダの中に作成します。

ProjectウィンドウでScenesフォルダを選択しましょう。

選択した状態で『+』ボタンを押しましょう。

色々と出てくるので、『Scene』をクリックしましょう。

すると、Scenesフォルダの中に新しくSceneが作成されます。

Sceneの名前を『Prefab』に変更しておきましょう。

今回は『Prefab』の中でやっていきたいので、Sceneを移動します。

『Prefab』をダブルクリックしましょう。

すると、Sceceを移動することができます。

Hierarchyウィンドウを見ると、現在のSceneが『Prefab』に変わっていますね。

Prefabを使ってみる

それでは、実際にPrefabを使ってみましょう。

今回は、Prefabから適当な3Dオブジェクトを複数作って、PrefabにRigitbodyコンポーネントを追加したら、作った複数の3Dオブジェクトにも追加されるのか確かめてみようと思います。

まずはPrefabを格納するためのフォルダを作りましょう。

ProjectウィンドウでAssetsフォルダを選択してください。

選択した状態で『+』ボタンを押しましょう。

色々と出てくるので『Folder』を押します。

すると、新しくフォルダを作ることができます。

名前を『Prefabs』に変更しておきましょう。

フォルダを作ったら、Prefabを格納します。

まずはPrefab化するためのオブジェクトを作りましょう。

『+』ボタンを押してください。

色々と出てくるので、3D Object > Cubeと押していきます。

すると、Cubeという3D Objectを作ることができます。

作ったCubeをPrefab化しましょう。

やり方は、CubeをHierarchyウィンドウから

Projectウィンドウに

ドラッグ&ドロップするだけです。

今回はProjectウィンドウにある、先ほど作ったPrefabsフォルダに格納します。

CubeをPrefabsフォルダにドラッグ&ドロップしましょう。

すると、PrefabsフォルダにはPrefab化されたCubeが格納されます。

Prefab化すると、元になったオブジェクトはHierarchyウィンドウで青色になります。

次に、Prefabを使ってオブジェクトを作ってみましょう。

prefab化したCubeをHierarchyウィンドウにドラッグ&ドロップしてください。

すると、Prefabを使ってオブジェクトを作ることができます。

Prefabからオブジェクトを何個も作ることができます。

あと3つほど作っておきましょう。

同じようにして3回ドラッグ&ドロップします。

すると、Prefabから3つのオブジェクトが作成されます。

全てのオブジェクトの位置が同じになっているので、

見えやすいように違う位置にしておきましょう。

この状態で再生したとしても、Rigidbodyコンポーネントが追加されていないので、どのオブジェクトも落下しません。

実際に落下しないのか、再生して確かめておきましょう。

再生ボタンを押してください。

再生してみても、やはり落下しませんね。

PrefabにRigidbodyコンポーネントを追加すれば、Prefabを使って作った全てのオブジェクトが落下するはずです。

実際に追加してみましょう。

Projectウィンドウで、PrefabのCubeをダブルクリックしてください。

すると、Prefabが編集できるようになります。

Rigidbodyコンポーネントを追加しましょう。

InspectorウィンドウでAdd Componentを押してください。

色々と出てくるので、Physics

Rigidbodyと押していきます。

すると、PrefabにRIgidbodyコンポーネントが追加されます。

それと同時にPrefabを作って作られたオブジェクトにもRIgidbodyコンポーネントが追加されているはずです。

確認しておきましょう。

Hierarchyウィンドウで戻るボタンを押してください。

すると、元の画面に戻ります。

適当にPrefabを使って作ったオブジェクトを選択しましょう。

例えば、Cube(2)を選択すると、

RIgidbodyコンポーネントが追加されていますね。

同じように、Prefabを使って作った他のオブジェクトにもRigidbodyコンポーネントが追加されています。

この状態で再生すると、5つのオブジェクト全てが落下するはずです。

再生ボタンを押してみましょう。

すると、予想通り5つのオブジェクト全てが落下しましたね。

このようにPrefabを使えば、オブジェクトを使い回すことができ、変更内容も共有されます。