tanaka's Programming Memo

プログラミングについてのメモ。

UnityでMissingのオブジェクトを検索する

以下書いたけど、Unity2018.3だとワーニングをダブルクリックすればどのオブジェクトか示してくれますね。ちょっと前に駄目だった気がしたのですが、気のせいだったかも・・・。一応なんかあった時の対処法ということで。


無料版のAssetを有料版に差し替える時やバージョンアップ時に、構造が変わってスクリプトMissingになってしまうことがあります。しかし、Missingなのは分かるけど、どれ・・・という時の解決策をUnity Communityで見つけました。

wiki.unity3d.com

実装手順

  • Editorフォルダーをプロジェクト内のどこかに作成します(すでにあればそれを利用すればよい)
  • Editorフォルダー内にFindMissingScriptsRecursivelyという名前でC#スクリプトを作成します

f:id:am1tanaka:20190401213247p:plain
スクリプト作成

f:id:am1tanaka:20190401213504p:plain
スクリプトをコピー

  • FindMissingScriptsRecursively.csに貼り付けます

f:id:am1tanaka:20190401213557p:plain
貼り付け

以上で設定完了です。

Missingを探す

  • 探したいシーンを開きます
  • Windowメニューから、FindMissingScriptsRecursivelyを選択して、検索ボタンのあるウィンドウを開きます

f:id:am1tanaka:20190401213818p:plain
検索メニュー表示

  • Hierarchyウィンドウでオブジェクトを全て選択します

f:id:am1tanaka:20190401213716p:plain
オブジェクトを選択

  • Find Missing Scripts in selected GameObjectsボタンをクリックします

f:id:am1tanaka:20190401214102p:plain
検索実行

検索結果は、Consoleウィンドウに表示されます。

f:id:am1tanaka:20190401214144p:plain
コンソール画面

  • ????? has an empty script attached in position: ?という行があったら、Missingを持ったゲームオブジェクトがあったということです。先頭の?????の部分にオブジェクトの名前が表示されます
  • 上記のコンソールの行をクリックすると、Hierarchyウィンドウで該当するゲームオブジェクトが黄色で示されます

f:id:am1tanaka:20190401214459p:plain
Missingのあるゲームオブジェクト

以上です。

Missingのあるプレハブを見つけるには

Hierarchyウィンドウで選択したのと同様に、Projectウィンドウで調べたいオブジェクトを選択して、検索ボタンを押せばプレハブからもMissingを見つけてくれます。

参考URL