以下書いたけど、Unity2018.3だとワーニングをダブルクリックすればどのオブジェクトか示してくれますね。ちょっと前に駄目だった気がしたのですが、気のせいだったかも・・・。一応なんかあった時の対処法ということで。
無料版のAssetを有料版に差し替える時やバージョンアップ時に、構造が変わってスクリプトがMissingになってしまうことがあります。しかし、Missingなのは分かるけど、どれ・・・という時の解決策をUnity Communityで見つけました。
実装手順
- Editorフォルダーをプロジェクト内のどこかに作成します(すでにあればそれを利用すればよい)
- Editorフォルダー内に
FindMissingScriptsRecursively
という名前でC#スクリプトを作成します
- 作成した
FindMissingScriptsRecursively
スクリプトをダブルクリックしてエディターで開きます - FindMissingScripts - Unify Community Wiki を開いて、
C# - FindMissingScriptsRecursively.cs
の方のスクリプトを全て選択してコピーします
FindMissingScriptsRecursively.cs
に貼り付けます
- スクリプトを上書き保存します
以上で設定完了です。
Missingを探す
- 探したいシーンを開きます
- Windowメニューから、FindMissingScriptsRecursivelyを選択して、検索ボタンのあるウィンドウを開きます
- Hierarchyウィンドウでオブジェクトを全て選択します
- Find Missing Scripts in selected GameObjectsボタンをクリックします
検索結果は、Consoleウィンドウに表示されます。
????? has an empty script attached in position: ?
という行があったら、Missingを持ったゲームオブジェクトがあったということです。先頭の?????の部分にオブジェクトの名前が表示されます- 上記のコンソールの行をクリックすると、Hierarchyウィンドウで該当するゲームオブジェクトが黄色で示されます
以上です。
Missingのあるプレハブを見つけるには
Hierarchyウィンドウで選択したのと同様に、Projectウィンドウで調べたいオブジェクトを選択して、検索ボタンを押せばプレハブからもMissingを見つけてくれます。