i-school - プレハブとプレハブバリアント
 Unity の便利な機能であるプレハブとプレハブバリアントについて解説します。



1.プレハブとは?


 プレハブ(Prefab)とは、Unity内で使うオブジェクトを設定した状態で保存して再利用するための仕組みです。


参考サイト
Unity 公式マニュアル
プレハブ



 プレハブ化されたオブジェクトは、複数のシーンやプロジェクトで使うことが可能で、プレハブの変更は全てのインスタンスに反映されます
このため、一度設定したオブジェクトの設定を再度繰り返す必要がなく、開発効率が大幅に上がります。


2.プレハブの作成方法と編集方法


 プレハブの作成は簡単です。

 まず、Hierarchyビューでオブジェクトを選択します。
次に、選択したオブジェクトをProjectビューにドラッグ&ドロップします。
すると、そのオブジェクトは青色のアイコンと共にProjectビューに表示され、プレハブ化されます。


参考サイト
Unity 公式マニュアル
プレハブの作成


3.プレハブの使い方と編集方法


 プレハブの使い方も簡単です。

 Projectビュー内にあるプレハブのゲームオブジェクトをHierarchyビュー、あるいは Sceneビューにドラッグ&ドロップするだけです。



 プレハブの変更は、Hierarchyビューで右クリックして[Prefab] > [Open]を選択することで行えます。
変更は自動的に全てのインスタンスに反映されます。


参考サイト
Unity 公式マニュアル
プレハブモードでのプレハブの編集
Unity 公式マニュアル
インスタンスのオーバーライド
Unity 公式マニュアル
インスタンスを通したプレハブの編集


4.プレハブの利点


 プレハブの最大の利点は、再利用性と一貫性です。
同じ設定のオブジェクトを何度も作る手間を省き、複数のシーンで一貫した振る舞いを持つオブジェクトを簡単に作ることができます。
また、プレハブを使うことで、オブジェクトの設定を一箇所で管理することが可能になり、変更が必要な場合も一箇所を変更すれば全てのインスタンスが更新されます。

 また、いつでもプレハブを元の単一のゲームオブジェクトに戻すことも出来ます


参考サイト
Unity 公式マニュアル
プレハブインスタンスの展開


5.プレハブの再利用性


 例えば、ゲーム内に"木"というオブジェクトがあるとします。
この木は葉っぱや枝などのサブコンポーネントと、特定の振る舞い(風に揺れるなど)を持つスクリプトから構成されているとします。
今回、この木を森のシーンだけでなく、山のシーンや湖のシーンでも使いたいとします。それぞれのシーンで木を一から作り直すのは非効率的です。

 そこでプレハブを使います。

 一度木をプレハブ化して保存しておけば、それを各シーンに簡単に追加することができます。


6.プレハブの一貫性


 また、この木について何か変更を加えたいとき、例えば枝の形状を少し変えたい、葉っぱの色を季節によって変えたい、といった場合もプレハブは役立ちます。

 プレハブ化された木を編集すると、その変更は全てのシーンにある木のインスタンスに自動的に反映されます。
つまり、一箇所で変更を加えるだけで全ての木が更新されるのです。


7.プレハブバリアント


 プレハブバリアントとは、元々のプレハブの特徴を引き継ぎつつ、バリアント独自の特徴を持つことができます。
そして元のプレハブが変更された場合、バリアントにも元のプレハブの変更が適用されますが、バリアント独自の特徴は変更されません
これにより、既存のプレハブの一部のみを変更した新しいプレハブを作成することができ、その変更点のみを管理することが可能になります。

 これが大きな特徴の1つです。


参考サイト
Unity 公式マニュアル
プレハブバリアント
くろくまそふと 様
ゲーム作り方ガイド 【Unity】プレハブ(Prefab)とは?プレハブの作り方・編集方法まとめ
Unityの使い方|初心者からわかりやすく
【Unity】プレハブバリアントを使う



プレハブバリアントのアイコン



Prefabs フォルダ内のプレハブバリアント



8.プレハブバリアントの作成方法


 プレハブバリアントを作成する方法を紹介します。

 Projectビューにある既存のプレハブを選択します。
右クリックして[Create] > [Prefab Variant]を選択します。

 これにより、選択したプレハブをベースにした新たなプレハブバリアントが作成されます。

 あるいは、ヒエラルキーにあるプレハブを、再度、Project ビューにドラッグアンドドロップしてプレハブを作成します。
その際、メッセージが表示されますので、バリアントを選択します。


確認のポップアップ



 プレハブバリアントは、元のプレハブのすべてのプロパティを継承しますが、それらのプロパティはバリアント自体で変更することが可能です。


9.プレハブバリアントの利用方法


 プレハブバリアントは、通常のプレハブと同様にHierarchyビューか Sceneビューにドラッグ&ドロップすることで使うことができます。
バリアント内で変更したプロパティは、そのバリアントのインスタンスにのみ反映されます。

 そして、元のプレハブ(オリジナル)が変更された場合、その変更はバリアントにも反映されます。ただし、バリアントで上書きしたプロパティについては影響を受けません。


10.プレハブバリアントの利点


 プレハブバリアントの主な利点は、似たようなオブジェクトを一元管理できる点です。
例えば、敵キャラクターのプレハブがあり、その中に攻撃力が異なる敵キャラクターを作りたい場合、それぞれ別のプレハブを作成する代わりにプレハブバリアントを作り、攻撃力だけを変更すれば良いのです。

 また、元のプレハブに対する変更がバリアントにも反映されるため、全体的な振る舞いを一元管理することが可能です。
これにより、大規模なゲーム開発においても管理が容易になります。


11.まとめ


 これらの特性により、プレハブとプレハブバリアントは、Unity開発の生産性を向上させる、非常に重要な機能となります。