プレハブアセットを編集するには、プレハブモード でプレハブアセットを開きます。プレハブモードでは、シーン内の他のゲームオブジェクトとは別に、プレハブアセットのコンテンツを個別に表示し編集することができます。プレハブモードで加えた変更は、そのプレハブのすべてのインスタンスに影響します。
プレハブアセットは 単独 で、またはコンテキスト 付きで編集することができます。
単独: プレハブを独立で編集すると、Unity は現在の作業シーンの残りの部分を隠し、プレハブ自体 (さらに、任意で、後述の、事前に設定した 編集環境) に関連するゲームオブジェクトのみを表示します。
コンテキスト付き: コンテキスト付きでプレハブを編集する場合、現在の作業シーンの残りの部分は表示されたままですが、編集のためにロックされています。
プレハブモードでプレハブの編集を開始するには、いくつかの方法があります。プレハブアセットを開いて 単独 で編集するには、以下の方法があります。
単独編集の状態でプレハブモードに入ると、Unity はそのプレハブの内容を シーンビュー と Hierarchy ウィンドウにのみ表示します。以下の画像では、プレハブのルートは通常の ゲームオブジェクト であり、青いプレハブインスタンスアイコンはありません。
プレハブモードでは、シーン ビューの上部にパンくずリストが表示されます。一番右側に表示されているのが、現在開いているプレハブです。パンくずリストを使用して、開いた主要なシーンや他のプレハブアセットに戻ることができます。
Hierarchy ウィンドウでは、現在開いているプレハブを示すプレハブヘッダーバーが上部に表示されます。ヘッダーバーの戻る矢印を使用して、1 つ前の手順に戻ることができます。これは、シーンビューのパンくずリストで、1 つ前のパンくずをクリックするのと同様です。
プレハブのインスタンスを経由して、コンテキスト付き でプレハブアセットを開くこともできます。その方法は以下の通りです。
デフォルトでは、Unity はコンテキストの外観をグレースケールで表示し、編集するプレハブコンテンツと外観で区別します。ただし、プレハブバーの Context:** コントロールを使って、以下のいずれかの状態に設定することができます。
コンテキストの一部であるゲームオブジェクトを選択することはできません。また、それらは Hierarchy にも表示されません。これにより、関係のないゲームオブジェクトを誤って選択したり、Hierarchy ウィンドウが混み合うことなく、プレハブの編集に集中できます。ただし、プレハブのコンテンツの一部であるゲームオブジェクトを移動させる場合は、Unity のスナップ機能を使って、コンテキスト内のゲームオブジェクトにスナップさせることができます。ただし、コンテキストが Hidden に設定されていない場合に限ります。
コンテキストを使ったプレハブモードでは、プレハブコンテンツは、それを開いたプレハブインスタンスの位置と一致するように表示されます。つまり、プレハブコンテンツのルートの 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 Mode の Prefab Editing Environment セクションに移動します。“UI 以外” のプレハブには Regular Environment 設定、UI プレハブには UI Environment 設定を使用します。UI プレハブは、通常の Transform コンポーネントではなく、ルート上に Rect Transform コンポーネントを持つプレハブです。 “UI 以外” のプレハブは、通常の Transform コンポーネントを持つプレハブです。