void removeComponents(GameObject target) { var comEnumerator = FilterableComponent.GetEnumerator(); if (isForNavMesh && CustomEditorGUI.IsMaskedLayer(layerMask, target)) { var col = target.GetComponent <Collider>(); if (col && col.enabled && !col.isTrigger) { var meshObj = MeshForNavmesh.Bake(col); meshObj.transform.parent = RootForNavMesh; meshObj.isStatic = true; IsoTile tile = target.GetComponentInParent <IsoTile>(); if (tile != null) { meshObj.name = tile.name; } } } while (comEnumerator.MoveNext()) { var type = comEnumerator.Current.Key; if ((type.IsSubclassOf(typeof(Component)) || type.IsSubclassOf(typeof(MonoBehaviour)) || type.IsInterface) && !FilteredComponent.Contains(type)) { var com = target.GetComponent(type); if (com) { DestroyImmediate(com); } } } }