Unity/Tip
GameObject의 Missing Script 삭제 자동화
코샵
2023. 5. 17. 15:27
반응형
다음은 누락된 스크립트를 자동으로 제거하는 코드입니다. 이 코드를 사용하면 선택한 게임 오브젝트에서 누락된 스크립트를 모두 제거할 수 있습니다.
using UnityEditor;
using UnityEngine;
public class SelectGameObjectsWithMissingScripts : Editor
{
[MenuItem("Utility/Remove Missing Script")]
private static void RemoveAllMissingScriptComponents()
{
var selectedGameObjects = Selection.gameObjects;
int totalComponentCount = 0;
int totalGameObjectCount = 0;
foreach (var gameObject in selectedGameObjects)
{
int missingScriptCount = GameObjectUtility.GetMonoBehavioursWithMissingScriptCount(gameObject);
if (missingScriptCount > 0)
{
Undo.RegisterCompleteObjectUndo(gameObject, "Remove Missing Scripts");
GameObjectUtility.RemoveMonoBehavioursWithMissingScript(gameObject);
totalComponentCount += missingScriptCount;
totalGameObjectCount++;
}
}
Debug.Log($"Removed {totalComponentCount} missing script component(s) from {totalGameObjectCount} game object(s).");
}
}
이 코드는 에디터에서 실행되는 코드이며, 에디터의 메뉴에서 "Utility/Remove Missing Script"를 선택하여 실행할 수 있습니다. 인스펙터 창에서 Missing Script를 제거할 대상의 게임 오브젝트를 선택하고 실행하시면 됩니다.