コンテンツにスキップ

修復する

ここが、このツールで唯一ファイルが書き換わる操作です。

修復の流れ

どの経路でも、順番は変わりません。

  1. バックアップ — 対象の .prefab をバックアップフォルダへコピーします
  2. 確認ダイアログ / Diff プレビュー — 何がどう変わるかを表示します
  3. 承認 — あなたがボタンを押したときだけ、次へ進みます
  4. 書き換え
  5. 再インポート
  6. 再検査 — 結果が自動で更新されます

キャンセルしてもバックアップは残ります

バックアップは承認より前に取ります。ダイアログでキャンセルしても、ファイルは何も書き換わりませんし、コピーはバックアップフォルダに残ります。

2 つの書き換え方

ツールが自動で選びます。選択の必要はありませんが、意味は知っておいてください。

経路 使われる場面 性質
Unity の API 経由 通常のコンポーネントのフィールドを直す場合 Unity の正規の手順。安全側
YAML の直接書き換え 親 Prefab の参照 / override の参照 / Missing Script など、API で代入できない対象 該当行の文字列だけを書き換える

YAML の直接書き換えは Unity 非公式の手法です

Unity が想定している操作ではありません。将来の Unity バージョンで動かなくなる可能性があります。 ツールは対象の行だけを書き換え、ファイル全体を作り直すことはしません(改行コードや文字コードも保ちます)が、リスクがゼロではないことは承知しておいてください。

この経路のときは、書き換わる行がそのまま Diff として表示されます。

@@ Assets/Avatar/Hoodie.prefab:2481 @@
- m_SourcePrefab: {fileID: 100100000, guid: 3f2b…, type: 3}
+ m_SourcePrefab: {fileID: 100100000, guid: 8ac1…, type: 3}

欠落 Prefab をまとめて修復する

Prefab が丸ごと欠落しているとき、その GUID は 1 つのファイルの中に何十箇所も書かれています。1 件ずつ直すのは現実的ではないので、「この Prefab をまとめて修復」でまとめて処理します。

Diff プレビューには、まとめの内容と候補の妥当性の評価が表示されます。

表示 意味
全 override の fileID が存在します 差し替え先に、調整値の当て先がすべて揃っています。同じ実体の Prefab である可能性が高い
解決しない override があります 一部の調整値が破棄される可能性があります
解決する override が 1 件もありません 別物の可能性が高い。 見た目の調整が丸ごと失われ得ます

「解決する override が 1 件もありません」と出たら止まってください

名前が同じでも中身が別物の Prefab に差し替えようとしている典型的なサインです。候補を見直してください。

このとき書き換わるのは GUID だけです。各参照が持つ fileID と type はそのまま保たれます。また、同じ GUID を参照している他のファイルは書き換えません。 他のファイルは 1 つずつ検査・修復してください。

Missing Script を直す場合

Missing Script の修復では、追加の警告が必ず表示されます。

設定値が完全に復元される保証はありません

スクリプトの参照を書き換えると、Unity はそのコンポーネントを新しい型として読み直します。ファイルに残っている設定値が読み込まれる可能性はありますが、このツールでは実機で検証していません。 対応しないフィールドを含め、値が失われるおそれがあります。

必ずバックアップと Diff を確認してから承認してください。

候補は、スクリプト名(.unitypackage の索引やごみ箱から分かった名前との一致)と、ファイルに残っているフィールド構成の一致から提示されます。「残存フィールド 7/9 一致」のように根拠が表示されます。すべて推測です。

修復できない場合

表示 対処
対象 Prefab が Prefab Mode で開かれています その Prefab を閉じてから、もう一度実行してください
検査時の参照位置が現在のファイルと一致しません 検査後にファイルが変わっています。再検査してください
差し替え先のファイル本体が存在しません 候補が Unity のキャッシュ上にだけ残っている状態です。再検査してください
差し替え前後の GUID が同一です 同じものを指しています。修復の必要がありません

いずれの場合も、何も書き換えていません。

修復したあと

再インポートと再検査が自動で走り、結果が更新されます。

「再検査後も問題が残っています」と出たら

まとめて修復したあとにこの警告が出ることがあります。差し替え先が別物であるか、一部の参照を解決できなかったということです。バックアップと結果を確認してください。元に戻す手順はバックアップとログにあります。

修復の記録は、バックアップと同じフォルダの repair.md に残ります。まとめて修復した場合は、全行の Diff がそこに記録されます。