void DrawActionList(AbilityEventData abilityEvent) { var eventActions = abilityEvent.Actions; GUILayout.BeginHorizontal(); abilityEvent.showActionsInEditor = EditorGUILayout.Foldout(abilityEvent.showActionsInEditor, "Actions", _foldout); if (GUILayout.Button("+", GUILayout.Width(20))) { eventActions.Add(new AbilityActionData()); } GUILayout.Space(310); // hack! GUILayout.EndHorizontal(); if (abilityEvent.showActionsInEditor) { for (int i = 0; i < eventActions.Count; i++) { GUILayout.BeginHorizontal(); eventActions[i].showInEditor = EditorGUILayout.Foldout(eventActions[i].showInEditor, eventActions[i].Type.ToString()); if (GUILayout.Button("-", GUILayout.Width(20))) { eventActions[i].tobeRemoved = true; } GUILayout.EndHorizontal(); AbilityActionData action = eventActions[i]; DrawAction(action); } eventActions.RemoveAll((a) => a.tobeRemoved); } }
void DrawModiferList(AbilityEventData abilityEvent) { var eventModifiers = abilityEvent.Modifiers; GUILayout.BeginHorizontal(); abilityEvent.showModifiersInEditor = EditorGUILayout.Foldout(abilityEvent.showModifiersInEditor, "Modifier", _foldout); if (GUILayout.Button("+", GUILayout.Width(20))) { eventModifiers.Add(new AbilityModifierData()); } GUILayout.Space(310); // hack! GUILayout.EndHorizontal(); if (abilityEvent.showModifiersInEditor) { for (int i = 0; i < eventModifiers.Count; i++) { GUILayout.BeginHorizontal(); eventModifiers[i].showInEditor = EditorGUILayout.Foldout(eventModifiers[i].showInEditor, eventModifiers[i].Type.ToString()); if (GUILayout.Button("-", GUILayout.Width(20))) { eventModifiers[i].tobeRemoved = true; } GUILayout.EndHorizontal(); DrawModifier(eventModifiers[i]); } eventModifiers.RemoveAll((a) => a.tobeRemoved); } }
void DrawEvent(AbilityEventData abilityEvent) { if (abilityEvent.showInEditor) { EditorGUILayout.BeginVertical(); EditorGUILayout.BeginHorizontal(); abilityEvent.Type = (AbilityEventData.Event)EditorGUILayout.EnumPopup(new GUIContent("Type", abilityEvent.Type.ToDescription()), abilityEvent.Type); EditorGUILayout.EndHorizontal(); DrawActionList(abilityEvent); DrawModiferList(abilityEvent); EditorGUILayout.EndVertical(); } }