public override void OnGUI(Rect rect) { bool hasScale = true; bool hasConvexBrushes = true; string accept = ""; switch (popupMode) { case PopupMode.BezierDetailLevel: GUILayout.Label("Bezier Detail Level", EditorStyles.boldLabel); hasScale = false; hasConvexBrushes = false; accept = "Apply"; GUILayout.BeginHorizontal(EditorStyles.toolbar); if (GUILayout.Button("1", EditorStyles.toolbarButton, GUILayout.MinWidth(24), GUILayout.MaxWidth(24))) { bezierDetailLevel_Detail = 1; onApply(this); } if (GUILayout.Button("2", EditorStyles.toolbarButton, GUILayout.MinWidth(24), GUILayout.MaxWidth(24))) { bezierDetailLevel_Detail = 2; onApply(this); } if (GUILayout.Button("3", EditorStyles.toolbarButton, GUILayout.MinWidth(24), GUILayout.MaxWidth(24))) { bezierDetailLevel_Detail = 3; onApply(this); } if (GUILayout.Button("4", EditorStyles.toolbarButton, GUILayout.MinWidth(24), GUILayout.MaxWidth(24))) { bezierDetailLevel_Detail = 4; onApply(this); } if (GUILayout.Button("5", EditorStyles.toolbarButton, GUILayout.MinWidth(24), GUILayout.MaxWidth(24))) { bezierDetailLevel_Detail = 5; onApply(this); } if (GUILayout.Button("6", EditorStyles.toolbarButton, GUILayout.MinWidth(24), GUILayout.MaxWidth(24))) { bezierDetailLevel_Detail = 6; onApply(this); } if (GUILayout.Button("7", EditorStyles.toolbarButton, GUILayout.MinWidth(24), GUILayout.MaxWidth(24))) { bezierDetailLevel_Detail = 7; onApply(this); } if (GUILayout.Button("8", EditorStyles.toolbarButton, GUILayout.MinWidth(24), GUILayout.MaxWidth(24))) { bezierDetailLevel_Detail = 8; onApply(this); } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(EditorStyles.toolbar); if (GUILayout.Button("9", EditorStyles.toolbarButton, GUILayout.MinWidth(24), GUILayout.MaxWidth(24))) { bezierDetailLevel_Detail = 9; onApply(this); } if (GUILayout.Button("10", EditorStyles.toolbarButton, GUILayout.MinWidth(24), GUILayout.MaxWidth(24))) { bezierDetailLevel_Detail = 10; onApply(this); } if (GUILayout.Button("11", EditorStyles.toolbarButton, GUILayout.MinWidth(24), GUILayout.MaxWidth(24))) { bezierDetailLevel_Detail = 11; onApply(this); } if (GUILayout.Button("12", EditorStyles.toolbarButton, GUILayout.MinWidth(24), GUILayout.MaxWidth(24))) { bezierDetailLevel_Detail = 12; onApply(this); } if (GUILayout.Button("13", EditorStyles.toolbarButton, GUILayout.MinWidth(24), GUILayout.MaxWidth(24))) { bezierDetailLevel_Detail = 13; onApply(this); } if (GUILayout.Button("14", EditorStyles.toolbarButton, GUILayout.MinWidth(24), GUILayout.MaxWidth(24))) { bezierDetailLevel_Detail = 14; onApply(this); } if (GUILayout.Button("15", EditorStyles.toolbarButton, GUILayout.MinWidth(24), GUILayout.MaxWidth(24))) { bezierDetailLevel_Detail = 15; onApply(this); } if (GUILayout.Button("16", EditorStyles.toolbarButton, GUILayout.MinWidth(24), GUILayout.MaxWidth(24))) { bezierDetailLevel_Detail = 16; onApply(this); } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(EditorStyles.toolbar); if (GUILayout.Button("17", EditorStyles.toolbarButton, GUILayout.MinWidth(24), GUILayout.MaxWidth(24))) { bezierDetailLevel_Detail = 17; onApply(this); } if (GUILayout.Button("18", EditorStyles.toolbarButton, GUILayout.MinWidth(24), GUILayout.MaxWidth(24))) { bezierDetailLevel_Detail = 18; onApply(this); } if (GUILayout.Button("19", EditorStyles.toolbarButton, GUILayout.MinWidth(24), GUILayout.MaxWidth(24))) { bezierDetailLevel_Detail = 19; onApply(this); } if (GUILayout.Button("20", EditorStyles.toolbarButton, GUILayout.MinWidth(24), GUILayout.MaxWidth(24))) { bezierDetailLevel_Detail = 20; onApply(this); } if (GUILayout.Button("21", EditorStyles.toolbarButton, GUILayout.MinWidth(24), GUILayout.MaxWidth(24))) { bezierDetailLevel_Detail = 21; onApply(this); } if (GUILayout.Button("22", EditorStyles.toolbarButton, GUILayout.MinWidth(24), GUILayout.MaxWidth(24))) { bezierDetailLevel_Detail = 22; onApply(this); } if (GUILayout.Button("23", EditorStyles.toolbarButton, GUILayout.MinWidth(24), GUILayout.MaxWidth(24))) { bezierDetailLevel_Detail = 23; onApply(this); } if (GUILayout.Button("24", EditorStyles.toolbarButton, GUILayout.MinWidth(24), GUILayout.MaxWidth(24))) { bezierDetailLevel_Detail = 24; onApply(this); } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(EditorStyles.toolbar); if (GUILayout.Button("25", EditorStyles.toolbarButton, GUILayout.MinWidth(24), GUILayout.MaxWidth(24))) { bezierDetailLevel_Detail = 25; onApply(this); } if (GUILayout.Button("26", EditorStyles.toolbarButton, GUILayout.MinWidth(24), GUILayout.MaxWidth(24))) { bezierDetailLevel_Detail = 26; onApply(this); } if (GUILayout.Button("27", EditorStyles.toolbarButton, GUILayout.MinWidth(24), GUILayout.MaxWidth(24))) { bezierDetailLevel_Detail = 27; onApply(this); } if (GUILayout.Button("28", EditorStyles.toolbarButton, GUILayout.MinWidth(24), GUILayout.MaxWidth(24))) { bezierDetailLevel_Detail = 28; onApply(this); } if (GUILayout.Button("29", EditorStyles.toolbarButton, GUILayout.MinWidth(24), GUILayout.MaxWidth(24))) { bezierDetailLevel_Detail = 29; onApply(this); } if (GUILayout.Button("30", EditorStyles.toolbarButton, GUILayout.MinWidth(24), GUILayout.MaxWidth(24))) { bezierDetailLevel_Detail = 30; onApply(this); } if (GUILayout.Button("31", EditorStyles.toolbarButton, GUILayout.MinWidth(24), GUILayout.MaxWidth(24))) { bezierDetailLevel_Detail = 31; onApply(this); } if (GUILayout.Button("32", EditorStyles.toolbarButton, GUILayout.MinWidth(24), GUILayout.MaxWidth(24))) { bezierDetailLevel_Detail = 32; onApply(this); } GUILayout.EndHorizontal(); bezierDetailLevel_Detail = EditorGUILayout.IntField("Detail", bezierDetailLevel_Detail); if (bezierDetailLevel_Detail < 1) { bezierDetailLevel_Detail = 1; } if (bezierDetailLevel_Detail > 999) { bezierDetailLevel_Detail = 999; } break; case PopupMode.GlobalPivotPosition: GUILayout.Label("Global Pivot Position", EditorStyles.boldLabel); hasScale = false; hasConvexBrushes = false; accept = "Set Position"; #if !UNITY_2017_2_OR_NEWER EditorGUIUtility.wideMode = true; GlobalPivotPosition_Position = Vector2Int.FloorToInt(EditorGUILayout.Vector2Field("Position", GlobalPivotPosition_Position)); EditorGUIUtility.wideMode = false; #else EditorGUIUtility.wideMode = true; GlobalPivotPosition_Position = EditorGUILayout.Vector2IntField("Position", GlobalPivotPosition_Position); EditorGUIUtility.wideMode = false; #endif break; case PopupMode.GenerateCircle: GUILayout.Label("Generate Circle", EditorStyles.boldLabel); hasScale = false; hasConvexBrushes = false; accept = "Add Shape"; GenerateCircle_Radius = SabreGUILayout.EvenIntField(new GUIContent("Radius"), GenerateCircle_Radius); bezierDetailLevel_Detail = EditorGUILayout.IntField("Detail", bezierDetailLevel_Detail); if (bezierDetailLevel_Detail < 1) { bezierDetailLevel_Detail = 1; } if (bezierDetailLevel_Detail > 999) { bezierDetailLevel_Detail = 999; } break; case PopupMode.CreatePolygon: GUILayout.Label("Create Polygon", EditorStyles.boldLabel); accept = "Create"; break; case PopupMode.RevolveShape: GUILayout.Label("Revolve Shape", EditorStyles.boldLabel); accept = "Revolve"; revolve360 = EditorGUILayout.IntField("Per 360", revolve360); if (revolve360 < 3) { revolve360 = 3; } revolveSteps = EditorGUILayout.IntField("Steps", revolveSteps); if (revolveSteps < 1) { revolveSteps = 1; } revolveSpiralSloped = EditorGUILayout.Toggle("Sloped Spiral", revolveSpiralSloped); // steps can't be more than 360. if (revolveSteps > revolve360) { revolveSteps = revolve360; } break; case PopupMode.ExtrudeShape: GUILayout.Label("Extrude Shape", EditorStyles.boldLabel); accept = "Extrude"; extrudeDepth = EditorGUILayout.FloatField("Depth", extrudeDepth); if (extrudeDepth < 0.01f) { extrudeDepth = 0.01f; } break; case PopupMode.ExtrudePoint: GUILayout.Label("Extrude Point", EditorStyles.boldLabel); accept = "Extrude"; extrudeDepth = EditorGUILayout.FloatField("Depth", extrudeDepth); if (extrudeDepth < 0.01f) { extrudeDepth = 0.01f; } break; case PopupMode.ExtrudeBevel: GUILayout.Label("Extrude Bevel", EditorStyles.boldLabel); accept = "Extrude"; extrudeDepth = EditorGUILayout.FloatField("Depth", extrudeDepth); if (extrudeDepth < 0.01f) { extrudeDepth = 0.01f; } extrudeClipDepth = EditorGUILayout.FloatField("Clip Depth", extrudeClipDepth); if (extrudeClipDepth < 0.01f) { extrudeClipDepth = 0.01f; } if (extrudeClipDepth > extrudeDepth) { extrudeClipDepth = extrudeDepth; } break; } if (hasConvexBrushes) { convexBrushes = EditorGUILayout.Toggle("Convex Brushes", convexBrushes); } if (hasScale) { EditorGUIUtility.wideMode = true; extrudeScale = EditorGUILayout.Vector2Field("Scale", extrudeScale); EditorGUIUtility.wideMode = false; if (extrudeScale.x < 0.01f) { extrudeScale.x = 0.01f; } if (extrudeScale.y < 0.01f) { extrudeScale.y = 0.01f; } } if (GUILayout.Button(accept)) { onApply(this); } }