using UnityEditor; namespace OctoCore.Components.Editor { [CustomEditor(typeof(OctoSaveEvent))] public class OctoSaveEventEditor : UnityEditor.Editor { public override void OnInspectorGUI() { serializedObject.Update(); SerializedProperty dataProp = serializedObject.FindProperty("data"); EditorGUILayout.PropertyField(dataProp); OctoSaveEvent script = (OctoSaveEvent)target; global::OctoCore.Save.Data.OctoData data = dataProp.objectReferenceValue as global::OctoCore.Save.Data.OctoData; if (data != null) { if (data is global::OctoCore.Save.Data.OctoDataBool) { EditorGUILayout.PropertyField(serializedObject.FindProperty("invertValue")); EditorGUILayout.PropertyField(serializedObject.FindProperty("onInitBool")); EditorGUILayout.PropertyField(serializedObject.FindProperty("onChangeBool")); } else if (data is global::OctoCore.Save.Data.OctoDataInt) { EditorGUILayout.PropertyField(serializedObject.FindProperty("onInitInt")); EditorGUILayout.PropertyField(serializedObject.FindProperty("onChangeInt")); } else if (data is global::OctoCore.Save.Data.OctoDataFloat) { EditorGUILayout.PropertyField(serializedObject.FindProperty("onInitFloat")); EditorGUILayout.PropertyField(serializedObject.FindProperty("onChangeFloat")); } else if (data is global::OctoCore.Save.Data.OctoDataString) { EditorGUILayout.PropertyField(serializedObject.FindProperty("onInitString")); EditorGUILayout.PropertyField(serializedObject.FindProperty("onChangeString")); } else if (data is global::OctoCore.Save.Data.OctoDataVector) { EditorGUILayout.PropertyField(serializedObject.FindProperty("onInitVector")); EditorGUILayout.PropertyField(serializedObject.FindProperty("onChangeVector")); } } serializedObject.ApplyModifiedProperties(); } } }