ちゃこブログ

お絵かきとUnityとBlenderと日記

【Unity】MissingComponentFinder

MissingComponentFinderというプラグインを制作しました。
スクリプトを書くのリハビリを兼ねた簡単なプログラムの制作をしました。
VRChatでMissingしてるComponentを消す必要があることがあるのですが、その機能は自分でも作れそうだなと思ったので作りました。
github.com

概要

シーン上のオブジェクトを取得し、オブジェクトにMissingしているComponentがある場合に表示を行います。
表示を行ったうえで、削除ボタンを押すとMissingしているComponentの削除プロセスが走ります。
f:id:charcotte:20211108204925p:plain
上記はtest1とtest2というオブジェクトにMissingしてるComponentがあるよという表示です。

RemoveMonoBehavioursWithMissingScript

MissingしているComponentを削除するメソッドが用意されています。

UnityEditor.GameObjectUtility.RemoveMonoBehavioursWithMissingScript( gameobject );

Unity2019以上で利用可能なAPIです。
nullになったComponentがあるGameObjectをキャッシュし、削除ボタンを押したときに上記メソッドにそのGameObjectを渡してあげるような実装にしています。