bool ShowRemoveButton(DriveObject.ValueEvent valueEvent) { if (GUILayout.Button("-", EditorStyles.miniButtonLeft, miniButtonWidth)) { return(true); } return(false); }
void ShowValueEvents() { GUILayout.Space(10); MyEditorTools.BeginHorizontal(); bool eventsBool = EditorGUILayout.BeginFoldoutHeaderGroup(drive.eventsBool, "Value Event Actions"); EditorGUILayout.EndFoldoutHeaderGroup(); MyEditorTools.ShowRefrenceButton(drive.valueEventsParent.gameObject); MyEditorTools.EndHorizontal(); if (drive.eventsBool != eventsBool) { Undo.RecordObject(drive, "Toggled eventsBool"); drive.eventsBool = eventsBool; } GUILayout.Space(10); if (drive.eventsBool) { UpdateValueEventBools(ref drive.ValueEventsBools); for (int i = 0; i < drive.valueEvents.Count; i++) { DriveObject.ValueEvent tempValEvent = ShowValueEvent(drive.valueEvents[i], i); if (tempValEvent == null) { drive.RemoveValueEvent(drive.valueEvents[i]); return; } drive.valueEvents[i] = tempValEvent; } if (GUILayout.Button("New Value Event")) { drive.CreateValueEvent(); } } }
void ShowRangeArea(ref DriveObject.ValueEvent valueEvent) { MyEditorTools.BeginHorizontal(); FloatRange tempRange = valueEvent.floatToBoolean.GetActivationRange(); tempRange.minimum = EditorGUILayout.FloatField(tempRange.minimum, EditorStyles.numberField, miniFeildWidth); EditorGUILayout.MinMaxSlider(ref tempRange.minimum, ref tempRange.maximum, 0, 1); tempRange.maximum = EditorGUILayout.FloatField(tempRange.maximum, EditorStyles.numberField, miniFeildWidth); if (tempRange.maximum > 1) { tempRange.maximum = 1; } valueEvent.floatToBoolean.SetActivationRange(tempRange); MyEditorTools.EndHorizontal(); }
DriveObject.ValueEvent ShowValueEvent(DriveObject.ValueEvent valueEvent, int i) { MyEditorTools.BeginHorizontal(); drive.ValueEventsBools[i] = EditorGUILayout.BeginFoldoutHeaderGroup(drive.ValueEventsBools[i], "Positive Bounds"); EditorGUILayout.EndFoldoutHeaderGroup(); ShowRangeArea(ref valueEvent); if (ShowRemoveButton(valueEvent)) { return(null); } MyEditorTools.EndHorizontal(); if (drive.ValueEventsBools[i]) { ShowValueEvents(valueEvent.booleanAction); } return(valueEvent); }