修復する¶
ここが、このツールで唯一ファイルが書き換わる操作です。
修復の流れ¶
どの経路でも、順番は変わりません。
- バックアップ — 対象の
.prefabをバックアップフォルダへコピーします - 確認ダイアログ / Diff プレビュー — 何がどう変わるかを表示します
- 承認 — あなたがボタンを押したときだけ、次へ進みます
- 書き換え
- 再インポート
- 再検査 — 結果が自動で更新されます
キャンセルしてもバックアップは残ります
バックアップは承認より前に取ります。ダイアログでキャンセルしても、ファイルは何も書き換わりませんし、コピーはバックアップフォルダに残ります。
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 がそこに記録されます。