public PartitionAlgorithm GetSelectedPartitionAlgorithm() { PartitionAlgorithm selectedPartitionAlgorithm = (PartitionAlgorithm)System.Enum.GetValues(typeof(PartitionAlgorithm)).GetValue(partitionAlgorithm.enumValueIndex); return(selectedPartitionAlgorithm); }
public override void OnInspectorGUI() { // Update the serializedProperty - always do this in the beginning of OnInspectorGUI. editor.serializedObject.Update(); // we draw our own inspector // DrawDefaultInspector(); serializedObject.Update(); GUILayout.BeginVertical("box"); { EditorGUILayout.HelpBox("Spawn Biome Masks on the Terrain", MessageType.Info); // // Biomes // biomeModule.OnInspectorGUI(); // // Lake // lakeModule.OnInspectorGUI(); // // Processing // processingModule.OnInspectorGUI(); // modules depending on partition algorithm PartitionAlgorithm selectedPartitionAlgorithm = processingModule.GetSelectedPartitionAlgorithm(); // partitioning algorithm switch (selectedPartitionAlgorithm) { case PartitionAlgorithm.Voronoi: voronoiModule.OnInspectorGUI(); shapeModule.OnInspectorGUI(); break; case PartitionAlgorithm.Rectangular: rectangularPartitionModule.OnInspectorGUI(); shapeModule.OnInspectorGUI(); break; case PartitionAlgorithm.Hexagon: hexagonModule.OnInspectorGUI(); shapeModule.OnInspectorGUI(); break; case PartitionAlgorithm.Line: lineModule.OnInspectorGUI(); break; case PartitionAlgorithm.River: riverModule.OnInspectorGUI(); break; case PartitionAlgorithm.Road: roadModule.OnInspectorGUI(); voronoiModule.OnInspectorGUI(); shapeModule.OnInspectorGUI(); break; default: throw new System.ArgumentException("Unsupported Partition Algorithm " + extension.boundsSettings.partitionAlgorithm); } // action buttons switch (selectedPartitionAlgorithm) { case PartitionAlgorithm.Voronoi: case PartitionAlgorithm.Rectangular: case PartitionAlgorithm.Hexagon: case PartitionAlgorithm.Line: case PartitionAlgorithm.River: maskCreationActionModule.OnInspectorGUI(); vegetationStudioProActionModule.OnInspectorGUI(); break; case PartitionAlgorithm.Road: roadCreationActionModule.OnInspectorGUI(); vegetationStudioProActionModule.OnInspectorGUI(); break; default: throw new System.ArgumentException("Unsupported Partition Algorithm " + extension.boundsSettings.partitionAlgorithm); } } GUILayout.EndVertical(); // Apply changes to the serializedProperty - always do this in the end of OnInspectorGUI. editor.serializedObject.ApplyModifiedProperties(); // initial check has been performed performInitialConsistencyCheck = false; }