using System.Collections; using System.Collections.Generic; using System.Linq; using System.Reflection; using UnityEditor; using UnityEngine; namespace MoreMountains.Tools { /// /// A custom editor displaying a foldable list of MMFeedbacks, a dropdown to add more, as well as test buttons to test your feedbacks at runtime /// [CanEditMultipleObjects] [CustomEditor(typeof(MMPlotter), true)] public class MMPlotterEditor : Editor { protected string[] _typeDisplays; protected string[] _excludedProperties = new string[] { "TweenMethod", "m_Script" }; protected MMPlotter _mmPlotter; protected virtual void OnEnable() { _mmPlotter = target as MMPlotter; _typeDisplays = _mmPlotter.GetMethodsList(); } public override void OnInspectorGUI() { serializedObject.Update(); Undo.RecordObject(target, "Modified Plotter"); EditorGUILayout.Space(); EditorGUILayout.LabelField("Tween Method", EditorStyles.boldLabel); _mmPlotter.TweenMethodIndex = EditorGUILayout.Popup("Tween Method", _mmPlotter.TweenMethodIndex, _typeDisplays, EditorStyles.popup); //int newItem = EditorGUILayout.Popup(0, _typeDisplays) - 1; //DrawDefaultInspector(); DrawPropertiesExcluding(serializedObject, _excludedProperties); if (GUILayout.Button("Draw Graph")) { _mmPlotter.DrawGraph(); } serializedObject.ApplyModifiedProperties(); } } }