(:3[kanのメモ帳]

個人ゲーム開発者kan.kikuchiのメモ的技術ブログ。月木更新でUnity関連がメイン。

(:3[kanのメモ帳]


本ブログの運営者kan.kikuchiが個人で開発したゲームです!

    

Missing (Mono Script)となったコンポーネントをプログラムで削除する方法 【Unity】【エディタ拡張】


このエントリーをはてなブックマークに追加


この記事でのバージョン
Unity 2021.1.16f1


はじめに

今回は元のスクリプトファイルが無くなり、

Missing (Mono Script)となったコンポーネントをプログラムで削除する方法の紹介です!

f:id:kan_kikuchi:20210911072210g:plain



RemoveMonoBehavioursWithMissingScript

さっそくですが、Missing (Mono Script)となったコンポーネントはGameObjectUtility

RemoveMonoBehavioursWithMissingScriptを使うと簡単に削除する事が出来ます。



使い方は簡単、Missingなコンポーネントを削除したいGameObjectを渡すだけ。

ちなみに返り値で削除したコンポーネントの数を取得出来ます。

//GameObjectUtilityを使うのに必要(※エディタ上でしか使えない)
using UnityEditor;
//Missing (Mono Script)となったコンポーネントを削除(ContextMenuを付ける事でInspectorから実行可能)
[ContextMenu("RemoveMonoBehavioursWithMissingScript")]
private void RemoveMonoBehavioursWithMissingScript() {
  //Missing (Mono Script)となったコンポーネントを削除し、削除数を取得
  var removedCount = GameObjectUtility.RemoveMonoBehavioursWithMissingScript(gameObject);

  //削除した数をログで表示
  Debug.Log($"{removedCount}個のmissingなコンポーネントを削除しました");
}
f:id:kan_kikuchi:20210911072210g:plain