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)が生成されます。プレハブのインスタンスは、全てオリジナルのプレハブにリンクしているため、意味的にはクローンとなります。プロジェクトに存在するインスタンスの数に限らず、プレハブに変更を加えると、インスタンスにも反映されます。
プレハブの作成
プレハブを作るには、メニューから新しい空のプレハブを作る必要が有ります。空のプレハブはゲームオブジェクトを含まないので、インスタンスを作る事が出来ません。新しいプレハブは、ゲームオブジェクトのデータを入れるための、空のコンテナと考えられます。

新しい、空のプレハブです。ゲームオブジェクトを追加するまでインスタンスを生成する事は出来ません。
シーンで作成したゲームオブジェクトをプレハブに格納します。
- をメニューバーから選択し、新しいプレハブに名前を付けます。
- 階層ビュー(Hierarchy View)において、プレハブに格納したいゲームオブジェクトを選択します。
- ゲームオブジェクトを、プロジェクトビューにおいて、階層ビューからドラッグアンドドロップします。
これらのステップを行うと、ゲームオブジェクトは小要素も含めてプレハブに追加されます。プレハブは複数のインスタントして再利用できます。改装中のオリジナルのゲームオブジェクトは、プレハブのインスタンスとなりました。
プレハブインスタンス
シーン中でプレハブのインスタンスを作成するには、プロジェクトビューからプレハブをシーン(Scene)又は階層ビューにドラッグします。このインスタンスはプレハブにリンクされており、階層ビューでは名前が青で表示されます。

3つのゲームオブジェクトがプレハブにリンクしています。1つはリンクしていません。
- プレハブのインスタンスを選択し、そこで行った変更を全てのインスタンスに適用したい場合、インスペクタ上で ボタンをクリックし、元となるプレハブを選択します。
- スクリプトからプレハブのインスタンスを作る方法についてはプレハブのインスタンス化ページを参照してください。
継承(Inheritance)
継承とは、オリジナルのプレハブに変更があった場合、その変更はリンクされているゲームオブジェクト全てに適用される事を意味します。例えば、もし新しいスクリプトをプレハブに追加すれば、全てのリンクされたゲームオブジェクトも同様にスクリプトを保持する事になります。しかしながら、リンクを損なう事無く、1つのインスタンスの属性値を変更する事も可能です。プレハブから生成されたインスタンスの属性値を変更してみてください。名前が太字に変わります。今、属性が上書きされました。全ての上書きされた属性は、オリジナルのプレハブを変更しても、変更されません。
これにより、オリジナルのプレハブを破壊することなく、1つのインスタンスのみを変更するとが出来ます。

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

上書きされた、リンクされたゲームオブジェクト
- 上書きした値を用いて、オリジナルのプレハブを更新し、全てのインスタンスが新しい値を保持するようにしたい場合は、インスペクタの ボタンをクリックしてください。
- 特定のインスタンスで行った上書きを破棄したい場合は、 ボタンをクリックしてください。
プレハブリンクの破壊と再生
1つのインスタンスと、オリジナルのプレハブ間のリンクを、破壊してしまうアクションが有ります。 リンクを破壊してしまうアクションは:
- コンポーネントの追加や削除
- 子ゲームオブジェクトの追加や削除
これらのアクションは、リンクを破壊してしまう事に関する、警告と確認のメッセージを表示します。 アクションがリンクを破壊してしまう事を了承すると、オリジナルのプレハブへの変更は、壊れたインスタンスに対して影響しなくなります。リンクを再生するには、インスタンスのインスペクタで
か ボタンをクリックします。- は、オリジナルのプレハブからなされた変更を全て破棄します。
- は、全ての変更をオリジナルのプレハブに適用します。(結果的に、全てのプレハブインスタンスにも適用されます)
プレハブのインポート
メッシュAssetをAssetsフォルダに配置すると、Unityは自動的にファイルをインポートし、プレハブに似た何かをメッシュから生成します。それは実はプレハブではなく、Assetファイルそのものです。これをインスタンス化したり、作業しする時には、通常のプレハブには無い、いくつかの制限が有ります。

Assetアイコンはプレハブアイコンと少し違います。
Assetはゲームオブジェクトとしてシーンにインスタンス化されます。通常のプレハブと違い、オリジナルのAssetにリンクされます。ゲームオブジェクトには、通常通り、コンポーネントを追加したり削除したりできます。しかし、Assetへの変更を、Asset自身に適用する事は、Assetがファイルそのものであるため、行えません! なにか、再利用したいものを作る場合は、上記の"プレハブの作成"に書かれていたステップに従い、Assetインスタンスをプレハブに格納する必要が有ります。
- Assetのインスタンスを選択した場合、インスペクタ上の ボタンは ボタンに変わります.ボタンをクリックすると、編集するためのアプリケーションが起動します。(例えば、Mayaや3DMaxなど)