Version: 2021.1
言語: 日本語
プレハブの作成
インスタンスのオーバーライド

プレハブモードでのプレハブの編集

プレハブアセットを編集するには、プレハブモード でプレハブアセットを開きます。プレハブモードでは、シーン内の他のゲームオブジェクトとは別に、プレハブアセットのコンテンツを個別に表示し編集することができます。プレハブモードで加えた変更は、そのプレハブのすべてのインスタンスに影響します。

プレハブモードの開始と終了

プレハブアセットは 単独 で、またはコンテキスト 付きで編集することができます。

左: プレハブを単独で編集。右: プレハブをコンテキスト付きで編集
左: プレハブを単独で編集。右: プレハブをコンテキスト付きで編集
  • 単独: プレハブを独立で編集すると、Unity は現在の作業シーンの残りの部分を隠し、プレハブ自体 (さらに、任意で、後述の、事前に設定した 編集環境) に関連するゲームオブジェクトのみを表示します。

  • コンテキスト付き: コンテキスト付きでプレハブを編集する場合、現在の作業シーンの残りの部分は表示されたままですが、編集のためにロックされています。

単独での編集

プレハブモードでプレハブの編集を開始するには、いくつかの方法があります。プレハブアセットを開いて 単独 で編集するには、以下の方法があります。

  • Project ウィンドウのプレハブアセットをダブルクリックします。
  • Project ウィンドウでプレハブアセットを選択し、Inspector ウィンドウで Open Prefab ボタンをクリックします。
Project ウィンドウで選択されているプレハブアセット (左) と、Inspector に表示される Open プレハブ ボタン (右)
Project ウィンドウで選択されているプレハブアセット (左) と、Inspector に表示される Open プレハブ ボタン (右)

単独編集の状態でプレハブモードに入ると、Unity はそのプレハブの内容を シーンビュー と Hierarchy ウィンドウにのみ表示します。以下の画像では、プレハブのルートは通常の ゲームオブジェクト であり、青いプレハブインスタンスアイコンはありません。

プレハブモードのシーンビューと Hierarchy ウィンドウ
プレハブモードのシーンビューと Hierarchy ウィンドウ

プレハブモードでは、シーン ビューの上部にパンくずリストが表示されます。一番右側に表示されているのが、現在開いているプレハブです。パンくずリストを使用して、開いた主要なシーンや他のプレハブアセットに戻ることができます。

シーンビューの一番上にあるパンくずリスト。プレハブモード時に表示されます。
シーンビューの一番上にあるパンくずリスト。プレハブモード時に表示されます。

Hierarchy ウィンドウでは、現在開いているプレハブを示すプレハブヘッダーバーが上部に表示されます。ヘッダーバーの戻る矢印を使用して、1 つ前の手順に戻ることができます。これは、シーンビューのパンくずリストで、1 つ前のパンくずをクリックするのと同様です。

Hierarchy ウィンドウのヘッダバーの 戻る 矢印。プレハブモード時に表示されます。
Hierarchy ウィンドウのヘッダバーの “戻る” 矢印。プレハブモード時に表示されます。

コンテキスト付きでの編集

プレハブのインスタンスを経由して、コンテキスト付き でプレハブアセットを開くこともできます。その方法は以下の通りです。

  • Hierarchy ウィンドウでプレハブインスタンスを選択し、Inspector ウィンドウの Open ボタンをクリックします。
  • Hierarchy ウィンドウでプレハブインスタンスを選択し、キーボードで P を押します。これは、デフォルトの キーボードショートカット です。
  • Hierarchy ウィンドウのプレハブインスタンスの隣にある 矢印ボタン を使用します。
プレハブインスタンスが選択されているときに Inspector に表示される Open ボタン
プレハブインスタンスが選択されているときに Inspector に表示される Open ボタン
Hierarchy ウィンドウのプレハブの横にある矢印ボタン
Hierarchy ウィンドウのプレハブの横にある矢印ボタン

デフォルトでは、Unity はコンテキストの外観をグレースケールで表示し、編集するプレハブコンテンツと外観で区別します。ただし、プレハブバーの Context:** コントロールを使って、以下のいずれかの状態に設定することができます。

  • Normal - コンテキストを通常の色で表示します。
  • Gray - コンテキストをグレースケールで表示します。
  • Hidden - コンテキストを完全に隠し、プレハブコンテンツのみを表示します。
シーンビューの上部にあるプレハブバーのプレハブモードコントロール (Context コントロール、Show Overrides トグルを含む)
シーンビューの上部にあるプレハブバーのプレハブモードコントロール (Context コントロール、Show Overrides トグルを含む)

コンテキストの一部であるゲームオブジェクトを選択することはできません。また、それらは Hierarchy にも表示されません。これにより、関係のないゲームオブジェクトを誤って選択したり、Hierarchy ウィンドウが混み合うことなく、プレハブの編集に集中できます。ただし、プレハブのコンテンツの一部であるゲームオブジェクトを移動させる場合は、Unity のスナップ機能を使って、コンテキスト内のゲームオブジェクトにスナップさせることができます。ただし、コンテキストが Hidden に設定されていない場合に限ります。

コンテキストを使ったプレハブモードでは、プレハブコンテンツは、それを開いたプレハブインスタンスの位置と一致するように表示されます。つまり、プレハブコンテンツのルートの Transform を、プレハブアセットが実際に持っているものとは異なる位置と回転値でプレビューする場合があります。

コンテキスト付きのプレハブモードでは、これらの値を編集することはできません。これらの値を編集する必要がある場合は、プレハブを単独で開くか、Project ウィンドウでプレハブアセットを選択し、Inspector で値を編集します。

ルートの Transform プロパティ以外にも、プレハブインスタンスの他のプロパティをオーバーライドすることができます。そのため、そのインスタンスのプレハブアセットと比べて外観が大きく変わることがあります。オーバーライドされた値をプレハブインスタンスからプレビューするには、コンテキストのプレハブモードで、プレハブバーの Show Overrides を有効にします。この設定を有効にすると、プレハブインスタンスでオーバーライドしたプロパティは、プレハブコンテキストでも同じようにプレビューされ、編集することはできません。これらのプロパティを編集するには、 Show Overrides のトグルを再度無効にしてください。

Auto Save

プレハブモードでは、シーンビューの右上に Auto Save という設定があります。この設定を有効にすると、プレハブに加えた変更は自動的にプレハブアセットに保存されます。Auto Save はデフォルトでオンになっています。

プレハブモードのシーンビューの右上にある Auto Save チェックボックス
プレハブモードのシーンビューの右上にある Auto Save チェックボックス

既存のアセットに自動的に変更を保存することなく変更を行う場合は、Auto Save をオフにします。この場合、Unity は、現在のプレハブのプレハブモードを終了するときに、保存されていない変更を保存するかどうか尋ねます。プレハブモードでプレハブを編集するのが遅く感じる場合は、Auto Save をオフにすると改善される場合があります。

単独モード/コンテキスト付きモードの切り替え

プレハブアセットを経由してプレハブモードを開くと、Unity はプレハブのコンテンツを単独で表示します。ただし、Hierarchy ウィンドウのプレハブインスタンスを経由してプレハブモードを開くと、コンテキスト付きプレハブモード が開きます。

この方法でプレハブモードを開くと、プレハブインスタンスを編集しているのではなく、プレハブアセット自体を編集しているにもかかわらず、プレハブインスタンスのコンテキストがシーンビューで表示されます。例えば、シーン内のプレハブインスタンスからコンテキスト付きでプレハブモードを開くと、プレハブを編集しながら、そのシーンの周囲環境を見ることができます。また、シーンと同じライティング条件でプレハブが表示されます。

コンテキスト付きプレハブモードで開いたプレハブ。周囲のコンテキストがグレースケールで表示
コンテキスト付きプレハブモードで開いたプレハブ。周囲のコンテキストがグレースケールで表示

コンテキスト付きではなく、単独で開きたいプレハブインスタンスがある場合は、Alt キーを押しながら Open ボタンまたは矢印ボタンをクリックしてプレハブモードを開きます。また、 Shortcuts ウインドウで、コマンド Stage > Edit Prefab in Isolation のカスタムショートカットを設定することもできます。

取り消し

プレハブモード中にプレハブアセットに変更を加えると、その変更を取り消すことができるのは、プレハブモード中のみです。プレハブアセットのプレハブモードを一旦終了すると、そのプレハブアセットに関連する編集内容は取り消し履歴に残りません。

編集環境

You can assign a Scene as an editing environment to be used with Prefab Mode in Isolation. This allows you to edit your Prefab against a backdrop of your choosing rather than an empty Scene. This can be useful fto see how your Prefab looks against a specific scenery of your choice. Unity only uses this editing environment when you open Prefab Mode 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 コンポーネントを持つプレハブです。

プロジェクト設定エディターのプレハブ編集環境設定
プロジェクト設定エディターのプレハブ編集環境設定
プレハブの作成
インスタンスのオーバーライド