【Unity 入門】一括編集に便利なPrefab(プレハブ)を使いこなそう

プレハブ機能を使うことで、一つのオブジェクトをもとに複製したオブジェクトを一括で編集することができます。

本記事ではUnity初心者の方向けに、シーン作成で役立つプレハブ機能を説明します。

プレハブとインスタンス

プレハブとはオブジェクトのテンプレートのことで、プレハブを作ればそれをもとに同じオブジェクトを複製することができます。

そして、プレハブをもとに複製したオブジェクトのことを「インスタンス」といいます。

プレハブをもとに複数のインスタンスを作成すると、それらに変更を加えたくなったときにもとのプレハブに変更を加えるだけで、すべてのインスタンスに同じ変更内容が反映されます。

また、インスタンスごとに個別の変更を加えることもできます。

シーン作成の効率化に役立つので、同じオブジェクトを複製して使いたい場合には進んで利用しましょう。

プレハブの作り方

プレハブを作るには、もとにしたいゲームオブジェクトをHierarchyウィンドウからProjectウィンドウへドラッグ&ドロップします。

HierarchyウィンドウからProjectウィンドウへドラッグ&ドロップ

HierarchyウィンドウからProjectウィンドウへドラッグ&ドロップ

プレハブが作成された場合はProjectウィンドウ上に青いアイコンのプレハブが追加され、もとにしたゲームオブジェクトのアイコンも青に変化します。

プレハブ作成後

プレハブ作成後

これはもとにしたゲームオブジェクトが作成したプレハブのインスタンスになったことを意味しています。

インスタンスの作り方

インスタンスを作るには、もとにしたいプレハブをProjectウィンドウからシーンビューへドラッグ&ドロップします。

プレハブをProjectウィンドウからシーンビューへドラッグ&ドロップ

プレハブをProjectウィンドウからシーンビューへドラッグ&ドロップ

プレハブを編集する

プレハブを変更するとインスタンスに変更内容が反映されます。

プレハブを変更するとインスタンスに変更が反映される

プレハブを変更するとインスタンスに変更内容が反映される

プレハブを編集する方法はプレハブモードを使った方法と、インスタンスに変更を加えてそのインスタンスをプレハブに上書きする方法の二つがあります。

プレハブモードで編集する

プレハブモードで編集するには、Projectウィンドウから編集したいプレハブをダブルクリックします。

編集したいプレハブをダブルクリック

編集したいプレハブをダブルクリック

するとシーンビューにプレハブが表示され、プレハブを編集することができます。

プレハブモード

プレハブモード

プレハブモードを終了するときはHierarchyウィンドウ上部に表示されたくの字の戻るボタンを押してください。

くの字のボタンをクリック

くの字の戻るボタンをクリック

インスタンスを元にプレハブに上書きする

インスタンスに加えた変更をプレハブに上書きしたいときは、そのインスタンスのInspector上部の「Overrides」をクリックして「Apply All」をクリックしてください。

「Apply All」をクリック

「Apply All」をクリック

ここで「Revert All」をクリックすると、インスタンスに加えた変更が破棄されてプレハブ通りのゲームオブジェクトに戻ります。

また、変更を加えたプロパティー名を右クリックするとその値のみでプレハブを上書きするか、プレハブ通りに戻すか選択できます。

プロパティー名を右クリック

プロパティー名を右クリック

他にもコンポーネントの縦三点リーダーを押して、Modified Component → Apply to Prefab…を押すことで、コンポーネントごとにプレハブを上書きすることもできます。

Modified Component → Apply to Prefab...

Modified Component → Apply to Prefab…

インスタンスを編集する

インスタンスは普通のオブジェクトと同様に編集することができます。

プレハブと同じ状態から値を変更した部分はInspectorで太文字で表示されます。

変更した部分はInspectorで太文字で表示

変更した部分はInspectorで太文字で表示

この部分はプレハブを変更した場合も変更内容が反映されません。

変更された部分はプレハブを変更した場合も変更が反映されない

変更された部分はプレハブを変更した場合も変更内容が反映されない

また、インスタンスを右クリックしてUnpack Prefabをクリックすることでインスタンス化を解除することもできます。

インスタンスを右クリックしてUnpack Prefabをクリック

インスタンスを右クリックしてUnpack Prefabをクリック

プレハブバリアントについて

プレハブバリアントはプレハブをもとに作成することができ、元のプレハブの派生として機能します。

プレハブバリアントをもとにインスタンスを作成することも可能で、プレハブバリアントに変更を加えるとインスタンスにも同じ変更が加えられます。

作り方

インスタンスを編集した後にHierarchyウィンドウからProjectウィンドウまでドラッグ&ドロップします。

HierarchyウィンドウからProjectウィンドウまでドラッグ&ドロップ

HierarchyウィンドウからProjectウィンドウまでドラッグ&ドロップ

出てきたウィンドウでPrefab Variantを選択することで作ることができます。

Prefab Variantを選択

Prefab Variantを選択

プレハブバリアントが作成された場合はProjectウィンドウ上に青と灰色のアイコンのプレハブバリアントが追加され、もとにしたゲームオブジェクトのアイコンも変化します。

プレハブバリアント作成後

プレハブバリアント作成後

編集方法

プレハブバリアントはプレハブと同様にプレハブモードを使った方法と、インスタンスに変更を加えてそのインスタンスをプレハブに上書きする方法で編集することができます。

また、元のプレハブに変更が加えられた場合には、プレハブバリアントにも同じ変更が加えられます。

元のプレハブと異なる部分はInspectorで太文字で表示され、元のプレハブに変更を加えてもプレハブバリアントのその部分には変更が反映されません。

元のプレハブと異なる部分はInspectorで太文字で表示される

元のプレハブと異なる部分はInspectorで太文字で表示される

以上がプレハブ機能の基本的な使い方の説明でした。

皆さんもぜひこの機能をシーン作成で使ってみてください。

STYLYにアップロードする方法

プレハブ化したゲームオブジェクトをSTYLYにアップロードしてみましょう。

STYLYアカウントを作成する

アカウント作成方法

STYLYにアップロードする方法

UnityからSTYLYにアップロードする方法

STYLYに関する質問、バグ報告、改善してほしい要望はSTYLY FORUMまで
https://jp.forum.styly.cc/support/discussions