ゲームオブジェクトのスクリプトが「Missing」になった時のリカバリー
このような時に出来るだけ素早く元に戻す。
まずこのような事になる場合
- Unityの管理外でスクリプト名の変更をした
- Unityの管理外でスクリプトファイルの階層構成を変更した
が挙げられます。つまり、Unityが把握してない所で変更したら「誰だお前!?」となる。
Missingになった時でもデータは保持されている
Missingになっていてもシリアライズされたデータは保持されている。
なのでシリアライズされたプロパティのデータの型やプロパティ名を、既存の(MonoBehaviourを継承した)クラスのプロパティと照らし合わせ、一致しているものが多い順に表示してみた。
一番一致しているプロパティが多いものはGoogleみたいに「もしかして」を付けてみた。
現在の問題点としては
Missingとなった時のプロパティの照らし合わせで配列(Generic、Array)とUnityEngine.ObjectとEnumは照らし合わせを行っていない。ちょっと面倒なので...
MonoBehaviourのCustomEditorを作成しているので、他でMonoBehaviourのCustomEditorを作成していたらどっちかが動作しなくなる。