Version: Unity 6.0 (6000.0)
言語 : 日本語
インスタンスのオーバーライド
プレハブインスタンスの展開

未使用のオーバーライド

インスタンスのオーバーライド値は、それらの値が定義されているシーンまたはプレハブにデータとして保存されます。ただし、オーバーライドのターゲットオブジェクトが無効であるか、そのプロパティパスが不明な場合は、オーバーライドは “未使用” になります。この場合、データは未使用になります。シーンファイルに保存されますが、余剰となります。

例えば、プレハブにアタッチされたスクリプトpublic フィールドの値をオーバーライドしてから、スクリプトを削除すると、オーバーライド値を含むデータは、存在しなくなったオブジェクトを対象としているため、未使用になります。

また、public フィールドの定義を削除したり、名前を変更したりすると、オーバーライドデータも未使用になります。これは、たとえ、コンポーネントオブジェクトそのものが引き続き存在していたとしても、プロパティパスは保存されたデータと一致しなくなるためです。

Unityでは、未使用のオーバーライドデータを自動的に削除しないため、削除したスクリプトまたはフィールド定義を復元すると、そのオーバーライドデータが再び使用されるようになり、以前のようにオーバーライドとして適用されます。

未使用のオーバーライドデータを保持しない場合は Inspector の Overrides メニューを使用するか、階層ウィンドウのコンテキストメニューから確認して削除できます。削除対象には未使用のオーバーライドがすべて含まれ、Unity は削除された内容の詳細をエディターログに書き込みます。

Unity エディターは、使用されていないデータを消去するタイミングや消去すべきか否かを自動的に判断できません。これは、データが参照するオブジェクトやプロパティを一時的または偶発的に移動させ、後で元に戻す可能性があるためです。不要であることがわかっている未使用のオーバーライドデータは、削除することをお勧めします。これは、シーンファイルには有用なデータのみが含まれているため、バージョン管理とコラボレーションのシンプル化に役立つためです。

ノート: フィールドの古い名前が新しい名前に一致するように名前返還を実行する FormerlySerializedAsAttribute を使用することによって、pulic フィールドの名前を変更し、関連するオーバーライド値を保持することができます。

プレハブの Overrides ドロップダウン

Inspector を使用して未使用のオーバーライドを確認し削除するには、以下を行います。

  1. 対象となるゲームオブジェクト (複数可) を選択します。
  2. Inspector で、Overrides ドロップダウンメニュー [A] をクリックします。未使用のオーバーライドがない場合は、メニューに “Unused overrides” オプション [B] が表示されます。それ以外の場合は、“Unused overrides” オプションは表示されません。
  3. Unused Overrides をクリックして、未使用のオーバーライドパネルを開きます。
  4. 未使用オーバーライドパネル [C] には、未使用のオーバーライドの一覧が表示され、Remove ボタンが配置されています。
  5. 未使用のオーバーライドを削除するには、Remove ボタンをクリックします。
Unused Overrides パネル。選択したプレハブの 2 つの未使用オーバーライドが表示されます。
Unused Overrides パネル。選択したプレハブの 2 つの未使用オーバーライドが表示されます。

注意unused overrides パネルは複数選択をサポートし、未使用オーバーライドの総数と影響を受けるインスタンスの数を表示します。ただし、以下の例に示すように、最大 3 つの未使用オーバーライドのフィールド名、ゲームオブジェクト名、値のみが表示されます。

Unused Overrides パネル。3 つの個別のプレハブインスタンスで 24 件の未使用オーバーライドが表示されています。
Unused Overrides パネル。3 つの個別のプレハブインスタンスで 24 件の未使用オーバーライドが表示されています。

Hierarchy コンテキストメニュー

未使用のインスタンスオーバーライドを確認し、Hierarchy ウィンドウから削除するには、以下を行います。

  1. 対象となるゲームオブジェクト (複数可) を選択します。
  2. Hierarchy ウィンドウで、選択したオブジェクトの一つを右クリックし、次のとおり選択します。2. Hierarchy ウィンドウで、選択したオブジェクトの 1 つを右クリックし Prefab > Remove Unused Overrides を選択します。
  3. Unity は、未使用のオーバーライドがある場合、その数を示すダイアログボックスを表示します。
  4. 未使用のオーバーライドを削除するには、Remove ボタンをクリックします。
Hierarchy ウィンドウのコンテキストメニューから未使用のオーバーライドを削除するときに表示されるダイアログボックス。
Hierarchy ウィンドウのコンテキストメニューから未使用のオーバーライドを削除するときに表示されるダイアログボックス。

ノート: 個別のゲームオブジェクトではなく、階層内のシーン名を右クリックすることで、シーン全体の未使用オーバーライドをすべて削除することができます。

インスタンスのオーバーライド
プレハブインスタンスの展開