プレハブ
マニュアル     リファレンス     スクリプト   
Unityマニュアル > Userガイド > シーンの構築 > プレハブ

このドキュメントは有志により翻訳されたもので、オフィシャルではありません。オリジナルのページはこちら
This document is unofficially translated by users.Please see the original document here.

翻訳に関する修正など、ご連絡はこちらまで。
Please send e-mail to here, when you have any question about the translation.

プレハブ(Prefabs)

プレハブはAseetの種類の1つです。 再利用可能なゲームオブジェクトプロジェクトビューに保存されます。プレハブは複数のシーンにも、また、1つのシーンに複数追加する事も出来ます。 プレハブをシーンに追加する時はインスタンス(instance)が生成されます。プレハブのインスタンスは、全てオリジナルのプレハブにリンクしているため、意味的にはクローンとなります。プロジェクトに存在するインスタンスの数に限らず、プレハブに変更を加えると、インスタンスにも反映されます。

プレハブの作成

プレハブを作るには、メニューから新しい空のプレハブを作る必要が有ります。空のプレハブはゲームオブジェクトを含まないので、インスタンスを作る事が出来ません。新しいプレハブは、ゲームオブジェクトのデータを入れるための、空のコンテナと考えられます。

新しい、空のプレハブです。ゲームオブジェクトを追加するまでインスタンスを生成する事は出来ません。

シーンで作成したゲームオブジェクトをプレハブに格納します。

  1. Assets->Create->Prefabをメニューバーから選択し、新しいプレハブに名前を付けます。
  2. 階層ビュー(Hierarchy View)において、プレハブに格納したいゲームオブジェクトを選択します。
  3. ゲームオブジェクトを、プロジェクトビューにおいて、階層ビューからドラッグアンドドロップします。

これらのステップを行うと、ゲームオブジェクトは小要素も含めてプレハブに追加されます。プレハブは複数のインスタントして再利用できます。改装中のオリジナルのゲームオブジェクトは、プレハブのインスタンスとなりました。

プレハブインスタンス

シーン中でプレハブのインスタンスを作成するには、プロジェクトビューからプレハブをシーン(Scene)又は階層ビューにドラッグします。このインスタンスはプレハブにリンクされており、階層ビューでは名前が青で表示されます。

3つのゲームオブジェクトがプレハブにリンクしています。1つはリンクしていません。

継承(Inheritance)

継承とは、オリジナルのプレハブに変更があった場合、その変更はリンクされているゲームオブジェクト全てに適用される事を意味します。例えば、もし新しいスクリプトをプレハブに追加すれば、全てのリンクされたゲームオブジェクトも同様にスクリプトを保持する事になります。しかしながら、リンクを損なう事無く、1つのインスタンスの属性値を変更する事も可能です。プレハブから生成されたインスタンスの属性値を変更してみてください。名前が太字に変わります。今、属性が上書きされました。全ての上書きされた属性は、オリジナルのプレハブを変更しても、変更されません。

これにより、オリジナルのプレハブを破壊することなく、1つのインスタンスのみを変更するとが出来ます。

上書きされていない、リンクされたゲームオブジェクト

上書きされた、リンクされたゲームオブジェクト

プレハブリンクの破壊と再生

1つのインスタンスと、オリジナルのプレハブ間のリンクを、破壊してしまうアクションが有ります。 リンクを破壊してしまうアクションは:

これらのアクションは、リンクを破壊してしまう事に関する、警告と確認のメッセージを表示します。 アクションがリンクを破壊してしまう事を了承すると、オリジナルのプレハブへの変更は、壊れたインスタンスに対して影響しなくなります。リンクを再生するには、インスタンスのインスペクタでReconnectApplyボタンをクリックします。

プレハブのインポート

メッシュAssetをAssetsフォルダに配置すると、Unityは自動的にファイルをインポートし、プレハブに似た何かをメッシュから生成します。それは実はプレハブではなく、Assetファイルそのものです。これをインスタンス化したり、作業しする時には、通常のプレハブには無い、いくつかの制限が有ります。


Assetアイコンはプレハブアイコンと少し違います。

Assetはゲームオブジェクトとしてシーンにインスタンス化されます。通常のプレハブと違い、オリジナルのAssetにリンクされます。ゲームオブジェクトには、通常通り、コンポーネントを追加したり削除したりできます。しかし、Assetへの変更を、Asset自身に適用する事は、Assetがファイルそのものであるため、行えません! なにか、再利用したいものを作る場合は、上記の"プレハブの作成"に書かれていたステップに従い、Assetインスタンスをプレハブに格納する必要が有ります。