void DestructionTypesUpdate(Destruction2DController script) { Destruction2DVisuals visuals = script.visuals; switch (script.destructionType) { case Destruction2DController.DestructionType.LinearCut: foldout = EditorGUILayout.Foldout(foldout, "Linear Cut"); if (foldout) { EditorLinearCut(script.linearCutControlelrObject); } break; case Destruction2DController.DestructionType.ComplexCut: foldout = EditorGUILayout.Foldout(foldout, "Complex Cut"); if (foldout) { EditorComplexCut(script.complexCutControllerObject); visuals.minVertexDistance = EditorGUILayout.FloatField("Min Vertex Size", visuals.minVertexDistance); } break; case Destruction2DController.DestructionType.Polygon: foldout = EditorGUILayout.Foldout(foldout, "Polygon Cut"); if (foldout) { EditorPolygon(script.polygonControllerObject); visuals.minVertexDistance = EditorGUILayout.FloatField("Min Vertex Size", visuals.minVertexDistance); } break; case Destruction2DController.DestructionType.PolygonBrush: foldout = EditorGUILayout.Foldout(foldout, "Polygon Brush"); if (foldout) { EditorPolygonBrush(script.polygonBrushControllerObject); visuals.minVertexDistance = EditorGUILayout.FloatField("Min Vertext Size", visuals.minVertexDistance); } break; case Destruction2DController.DestructionType.ComplexBrush: foldout = EditorGUILayout.Foldout(foldout, "Complex Brush"); if (foldout) { EditorComplexBrush(script.complexBrushControllerObject); visuals.minVertexDistance = EditorGUILayout.FloatField("Min Vertex Size", visuals.minVertexDistance); } break; } }
override public void OnInspectorGUI() { Destruction2DController script = target as Destruction2DController; script.destructionType = (Destruction2DController.DestructionType)EditorGUILayout.EnumPopup("Destruction Type", script.destructionType); script.destructionLayer.SetLayerType((Destruction2DLayerType)EditorGUILayout.EnumPopup("Destruction Layer", script.destructionLayer.GetLayerType())); EditorGUI.indentLevel = EditorGUI.indentLevel + 2; if (script.destructionLayer.GetLayerType() == Destruction2DLayerType.Selected) { for (int i = 0; i < 8; i++) { script.destructionLayer.SetLayer(i, EditorGUILayout.Toggle("Layer " + (i + 1), script.destructionLayer.GetLayerState(i))); } } EditorGUI.indentLevel = EditorGUI.indentLevel - 2; visualsFoldout = EditorGUILayout.Foldout(visualsFoldout, "Visuals"); if (visualsFoldout) { EditorVisuals(script.visuals); } DestructionTypesUpdate(script); if (Destruction2DController.DestructionType.Polygon == script.destructionType || Destruction2DController.DestructionType.Modifier == script.destructionType) { modifiersFoldout = EditorGUILayout.Foldout(modifiersFoldout, "Mofidiers"); if (modifiersFoldout) { EditorModifier(script.modifierControllerObject); } } }
void Awake() { instance = this; }