static void AddComponent() { for (int i = 0; i < Selection.gameObjects.Length; ++i) { GameObject go = Selection.gameObjects[i]; CSGObject obj = go.GetComponent <CSGObject>(); Mesh mesh = go.GetComponent <MeshFilter>() != null?go.GetComponent <MeshFilter>().sharedMesh : null; if (!obj && mesh) { // TODO: add bsp tree generation on add... CSGObject csg = go.AddComponent <CSGObject>(); MeshFilter filter = go.GetComponent <MeshFilter>(); // clone mesh as every csg object needs his own mesh filter.sharedMesh = ObjectCloner.CloneMesh(filter.sharedMesh); // csg.CreateFromMesh(); } else { Debug.Log("No Mesh or already an CSG Object"); } } }