【Unity入門】Prefabでオブジェクトを複製してみる
この記事の目次
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を使えば、オブジェクトを使い回すことができ、変更内容も共有されます。