#define Graph_And_Chart_PRO using System; using System.Collections.Generic; using System.Linq; using System.Text; using UnityEditor; using UnityEngine; class GraphDataEditor : UnityEditor.EditorWindow { SerializedObject mThisObject; SerializedObject mEditedObject; string category; SerializedProperty mGraphData; SerializedProperty mCategories; SerializedProperty mCategory; Dictionary mValues; SerializedObject mObject; [SerializeField] Vector2[] Data; public static GraphDataEditor ShowForObject(SerializedObject obj,string category) { GraphDataEditor window = (GraphDataEditor)EditorWindow.GetWindow(typeof(GraphDataEditor)); window.SetEditedObject(obj, category); return window; } int FindCategoryIndex(string category) { for(int i=0; i FillDataCustomCode = null; void OnGUI() { SerializedProperty serialProp = mThisObject.FindProperty("Data"); GUILayout.Label("Edit Values - " + category, EditorStyles.boldLabel); if (mCategory == null) return; Vector2[] customArr = null; //FillDataCustomCode = FillDataCustomCodeImplementation; if (FillDataCustomCode != null) { if (GUILayout.Button("Fill Data From Custom Code")) { customArr = FillDataCustomCode(); } } EditorGUILayout.PropertyField(serialProp, true); var arr = mCategory.FindPropertyRelative("InitialData"); if (customArr != null) { SetArray(customArr, arr); } else { if (mThisObject.ApplyModifiedProperties()) SetArray(serialProp, arr); } mEditedObject.ApplyModifiedProperties(); } }