UnityでMissing Scriptを一括検出&削除できるEditor拡張を作りました
Unityでプロジェクトを触っていると、Inspectorに None (Mono Script)
と表示される現象に遭遇したことはありませんか?
この状態のGameObjectは、
- プレハブ化ができない
- どのGameObjectに残っているか分かりづらい
- 手作業で探して削除するのが面倒
といった非常に困った状況になります。
これはスクリプトファイルを削除・移動した際に参照が切れて発生し、さまざまな問題を引き起こします。
そこで、指定したGameObject配下のMissing Scriptを一括で検出&削除できるUnity Editor拡張「Missing Script Detector」を作成しました。
機能概要
- 対象GameObject配下のすべてのMissing Scriptを検出
- 検出結果を一覧表示
- 個別または一括で削除
- 削除前に確認ダイアログ表示(安全設計)
インストール方法
OpenUPM経由でインストールできます。
# openupm-cli をインストール
npm install -g openupm-cli
# Unityプロジェクトディレクトリに移動
cd YOUR_UNITY_PROJECT_DIR
# パッケージを追加
openupm add com.segur.missing-script-detector
OpenUPMを利用しない場合は、以下のGitHubリポジトリからソースコードを直接入手できます。
使い方
- Unityのメニューバーから
Tools > Missing Script Detector
を選択すると、以下のウィンドウが開きます。
-
Target GameObject
に対象のGameObjectを指定し、Search MissingScript
ボタンをクリックしてください。 - 配下のGameObjectを探索し、Missing Scriptがあれば以下のように一覧表示されます。
各ボタンの機能は以下の通りです。
- Select ボタン:該当のGameObjectをHierarchyで選択
- Remove ボタン:対象のMissing Scriptを削除
- Remove All MissingScript ボタン:検出された全てを一括削除
注意事項
- 削除は元に戻せません(必ず確認ダイアログで確認)
- Unity 2022.3以降に対応
さいごに
プロジェクトに潜むMissing Scriptをスッキリ一掃して、快適なUnityライフを送りましょう!