Unity3D编辑器:删掉MissingScirpt脚本
2017-09-21 09:24
302 查看
using UnityEngine; using System.Collections; using UnityEditor; using UnityEngine.SceneManagement; public class RemoveMissingScripts : Editor { [MenuItem("Tools/移除丢失的脚本")] public static void RemoveMissingScript() { var gos = GameObject.FindObjectsOfType<GameObject>(); foreach (var item in gos) { Debug.Log(item.name); SerializedObject so = new SerializedObject(item); var soProperties = so.FindProperty("m_Component"); var components = item.GetComponents<Component>(); int propertyIndex = 0; foreach (var c in components) { if (c == null) { soProperties.DeleteArrayElementAtIndex(propertyIndex); } ++propertyIndex; } so.ApplyModifiedProperties(); } AssetDatabase.Refresh(); Debug.Log("清理完成!"); //Debug.Log(gos.Length); //var r= Resources.FindObjectsOfTypeAll<GameObject>(); //foreach (var item in r) //{ // Debug.Log(item.name); //} //Debug.Log(r.Length); } }
如果只是CetComponent然后判空然后Destroy是不起作用的,用上这种序列化的方式凑效
转载:点击打开链接
相关文章推荐
- 【Unity3D】设置脚本的默认编辑器、默认IDE
- Unity3D应用随笔,选择默认脚本编辑器
- 扩展Unity3D编辑器的脚本模板
- 编辑器中添加菜单以及菜单项 【unity3d脚本】
- 编辑器中添加菜单以及菜单项 【unity3d脚本】
- Unity3D编辑器之脚本打开SpritePacker窗口
- 扩展Unity3D编辑器的脚本模板
- 用visual studio当做unity3D脚本编辑器
- unity3D学习之Mono Develop脚本编辑器和常用核心类
- Unity3D Script脚本编辑器属性
- VS2017做为Unity3D的脚本编辑器需要的最精简组件
- 扩展Unity3D编辑器的脚本模板
- VS2017做为Unity3D的脚本编辑器需要的最精简组件
- unity3d--脚本编辑器介绍
- Unity3D学习之(脚本编辑器实现各种类的操作)
- unity3d编辑器界面扩展,编辑状态下显示选择对象的所有脚本组件代码内容
- Unity3D之编辑器脚本获取资源内存和硬盘大小
- Unity3d UI NGUI对象、脚本、参数
- Unity3D脚本中文系列教程(十三)
- Unity3D脚本-C#