Unity用代码实现Remove Missing Script 1[MenuItem("Edit/Cleanup Missing Scripts")]2staticvoidCleanupMissingScripts ()3{4for(inti =0; i < Selection.gameObjects.Length; i++)5{6vargameObject =Selection.gameObjects[i];78//We must use the GetComponents array to actually detect missing components9va...
); } static void search(GameObject go) { m_goCount++; m_missingCount += GameObjectUtility.RemoveMonoBehavioursWithMissingScript(go); foreach (Transform child in go.transform) search(child.gameObject); } } 使用方法:将代码保存到文件 Assets\Editor\RemoveMissingScripts.cs 中。在 Hierarchy 中选择...
而unity提供了新的API GameObjectUtility.RemoveMonoBehavioursWithMissingScript(go); 更方便移除丢失的组件,需要遍历物体下面所有子节点,否则无法移除子节点的丢失组件。 于是重新整理了下清理的编辑器代码,直接贴上: 1usingSystem;2usingUnityEngine;3usingUnityEditor;45publicclassResTool : Editor6{7[MenuItem("Tools/...
private static void RemoveMissingScriptsInFolder(string folderPath) { string[] assetPaths = AssetDatabase.GetAssetPathsFromAssetFolder(folderPath); List<string> missingScripts = new List<string>(); foreach (string assetPath in assetPaths) { if (assetPath.EndsWith(".cs")) // Assuming script...
RemoveMonoBehavioursWithMissingScript(go); logList.Add(string.Format("删除了{0}中的{1}个missing的script", prefabPath, count)); } } } EditorUtility.ClearProgressBar(); 输出到日志文件 private void WriteLog(string fileName, List<string> outputList) { if (!Directory.Exists(@"Logs")) { ...
Window > bTools > Delete Missing Scripts. Click the search button based on your needs.Click Delete Missing to remove all Missing Script Components.About The Unity tool designed to locate missing script components. Resources Readme License MIT license Activity Stars 12 stars Watchers 1 ...
Unity 5.4.6f3 (64-bit) 问题现象 昨天改了点东西,发现某个Prefab拖到Hierarchy后状态不对(见上图)。和朋友聊过后发现Prefab上使用着一个已经删掉的脚本。 [MenuItem("GameObject/DMTools/移除MissingScripts")]staticvoidRemoveMissingScripts(){if(null!=Selection.activeTransform){_RemoveMissScripts(Select...
清除Missing Script GameObjectUtility.RemoveMonoBehavioursWithMissingScript(GameObject go); 1. 查找内嵌的Missing Prefab static void FindMissingPrefab(GameObject go, string name, bool isRoot, bool recursive = true) { if (go.name.Contains("Missing Prefab")) ...
uuid2path.Remove(uuid); } StringBuilder sb =newStringBuilder(); sb.Append("UnUsedFiles: "); sb.Append(uuid2path.Count); sb.Append("\n"); uuid2path.ForEach(kv => sb.Append(kv.Value"\n")); File.WriteAllText("Assets/unusedpic.txt", sb.ToString()); ...
public static int RemoveMonoBehavioursWithMissingScript (GameObject go); 参数 go 要从中移除具有缺失脚本的 MonoBehaviours 的 GameObject。 返回 int 移除的具有缺失脚本的 MonoBehaviours 的数目。 描述 将具有缺失脚本的 MonoBehaviours 从给定 GameObject 中移除。