プレハブアセットを編集するには、プレハブモード でプレハブアセットを開きます。プレハブモードでは、シーン内の他のゲームオブジェクトとは別に、プレハブアセットのコンテンツを個別に表示し編集することができます。プレハブモードで加えた変更は、そのプレハブのすべてのインスタンスに影響します。
プレハブアセットは 単独、または コンテキスト付き で編集することができます。
単独: プレハブを単独で編集すると、Unity は現在作業中のシーンの残りの部分を隠し、プレハブ自体 (および、任意の 事前に設定した編集環境- 下記参照) に関連するゲームオブジェクトのみを表示します。
コンテキスト付き: コンテキスト付きでプレハブを編集する場合、現在の作業シーンの残りの部分は表示されたまま、編集のためにロックされます。
プレハブモードでプレハブの編集を開始するには、いくつかの方法があります。プレハブアセットを開いて 単独 で編集するには、以下の方法があります。
単独編集の状態でプレハブモードに入ると、Unity はそのプレハブのコンテンツのみを シーンビュー と Hierarchy ウィンドウに表示します。以下の画像では、プレハブのルートは通常の ゲームオブジェクト であり、青いプレハブインスタンスアイコンはありません。
プレハブモードでは、シーンビュー の上部にパンくずリストが表示されます。一番右側に表示されているのが、現在開いているプレハブです。パンくずリストを使用して、以前に開いた主要なシーンや他のプレハブアセットに戻ることができます。
Hierarchy ウィンドウでは、現在開いているプレハブを示すプレハブヘッダーバーが上部に表示されます。ヘッダーバーの戻る矢印を使用して、1 つ前のステップに戻ることができます。シーンビューのパンくずリストで、1 つ前のパンくずをクリックするのと同じです。
プレハブのインスタンスを経由して、コンテキスト付き でプレハブアセットを開くこともできます。その方法は以下の通りです。
デフォルトでは、Unity はコンテキストをグレースケールで表示し、編集するプレハブコンテンツと見た目で区別します。表示方法は、プレハブバーの Context: コントロールを使って、以下のいずれかの状態に設定することができます。
コンテキストの一部であるゲームオブジェクトは選択できず、Hierarchy ウィンドウにも表示されません。これにより、関係のないゲームオブジェクトを誤って選択したり、Hierarchy ウィンドウを煩雑にしたりすることなく、プレハブの編集に集中できます。ただし、プレハブコンテンツの一部であるゲームオブジェクトを移動する場合は、コンテキストが Hidden に設定されていない限り、Unity のスナップ機能を使用してコンテキスト内のゲームオブジェクトをスナップできます。
コンテキスト付きのプレハブモードでは、プレハブコンテンツはそれを開いたプレハブインスタンスの位置と一致するように表示されます。つまり、プレハブアセットが実際に持っているものとは異なる位置と回転の値で、プレハブコンテンツのルートの Transform をプレビューする場合があります。
コンテキスト付きのプレハブモードでは、これらの値を編集することはできません。これらの値を編集する必要がある場合は、プレハブを単独で開くか、Project ウィンドウでプレハブアセットを選択し、Inspector で値を編集します。
ルートの Transform プロパティ以外にも、プレハブインスタンスの他のプロパティをオーバーライドすることができます。そのため、そのインスタンスのプレハブアセットと比べて外観が大きく変わることがあります。オーバーライドされた値をプレハブインスタンスからプレビューするには、コンテキスト付きのプレハブモードで、プレハブバーの Show Overrides チェックボックスを有効にします。この設定を有効にすると、プレハブインスタンスでオーバーライドしたプロパティは、プレハブコンテキストでも同じようにプレビューされ、編集することはできません。これらのプロパティーを編集するには、Show Overrides チェックボックスを再度無効にします。
プレハブモードでは、シーンビューの右上に Auto Save 設定があります。この設定を有効にすると、プレハブに加えた変更は自動的にプレハブアセットに保存されます。Auto Save はデフォルトでオンになっています。
既存のアセットに自動的に変更を保存せずに変更したい場合は、Auto Save をオフにします。この場合、Unity は、現在のプレハブのプレハブモードを終了するときに、保存されていない変更を保存するかどうか尋ねます。プレハブモードでプレハブを編集するのが遅く感じる場合は、Auto Save をオフにすると改善される場合があります。
プレハブアセットを経由してプレハブモードを開くと、Unity はプレハブのコンテンツを単独で表示します。ただし、Hierarchy ウィンドウのプレハブインスタンスを経由してプレハブモードを開くと、コンテキスト付きのプレハブモード が開きます。
この方法でプレハブモードを開くと、プレハブインスタンスではなくプレハブアセット自体を編集しているときでも、プレハブインスタンスのコンテキストがシーンビューで表示されます。例えば、シーン内のプレハブインスタンスからコンテキスト付きのプレハブモードを開くと、プレハブの編集中にそのシーンで周囲を確認できます。また、プレハブはシーンと同じライティング条件で表示されます。
コンテキスト付きではなく、単独で開きたいプレハブインスタンスがある場合は、Alt キーを押しながら Open ボタンまたは矢印ボタンをクリックしてプレハブモードを開きます。また、Shortcuts ウインドウで、コマンド Stage > Edit Prefab in Isolation のカスタムショートカットを設定することもできます。
プレハブモードでプレハブアセットに変更を加える場合、その変更を取り消すことができるのは、プレハブモードの実行中のみです。プレハブアセットのプレハブモードを一旦終了すると、そのプレハブアセットに関連する編集内容は取り消し履歴に残りません。
シーンを 編集環境 として割り当て、単独のプレハブモードで使用することができます。これにより、何もないシーンではなく、選択した背景でプレハブを編集することができます。これは、選んだ特定の背景に対して、プレハブがどのように見えるかを確認するのに便利です。単独でプレハブモードを開いたときのみ、この編集環境が使用できます。
プレハブモードでは、編集環境として設定したシーン内のゲームオブジェクトは選択できず、Hierarchy ウィンドウにも表示されません。これにより、関係のないゲームオブジェクトを誤って選択したり、Hierarchy ウィンドウを煩雑にしたりすることなく、プレハブの編集に集中できます。
シーンを編集環境として設定するには、Editor ウィンドウ (トップメニュー:Edit > Project Settings を選択し、Editor カテゴリを選択) を開いて、Prefab Editing Environment セクションに移動します。“UI 以外” のプレハブには Regular Environment 設定を使用し、UI プレハブには UI Environment 設定を使用します。UI プレハブは、通常の Transform コンポーネントではなく、ルートに Rect Transform コンポーネントを持つプレハブです。“UI 以外” のプレハブは、通常の Transform コンポーネントを持つプレハブです。