public override void OnInspectorGUI() { NDPlaneInstance plane = (NDPlaneInstance)target; source = (GameObject)EditorGUILayout.ObjectField(source, typeof(GameObject), true); if (plane.PreviousCuts != null && plane.PreviousCuts.Count > 0) { foreach (GameObject obj in plane.PreviousCuts) { EditorGUILayout.ObjectField(obj, typeof(GameObject), false); } if (GUILayout.Button("Clear Previous Cuts")) { plane.DestroyPreviousCuts(); if (source != null) { source.SetActive(true); } } } if (source == null) { EditorGUILayout.LabelField("Add a GameObject to Cut."); return; } if (source.GetComponent <MeshFilter>() == null) { EditorGUILayout.LabelField("GameObject must have a MeshFilter."); return; } if (plane.PreviousCuts == null || plane.PreviousCuts.Count == 0) { if (GUILayout.Button("Cut Object")) { plane.CutObject(source); source.SetActive(false); } } }