public void GetValue(LogToCSV.LoggerConfig config) { config.dataBuffer.AddToBuffer(ReadValue()); }
public override void OnInspectorGUI() { try { LogToCSV logToCSV = (LogToCSV)target; _loggerConfig = logToCSV.loggerConfig; _timeBuffer = logToCSV.timeBuffer; DrawDefaultInspector(); serializedObject.Update(); GUILayout.Label("Log to CSV", EditorStyles.boldLabel); EditorGUILayout.BeginHorizontal(); fileName = EditorGUILayout.TextField("File Name", fileName); if (GUILayout.Button("Export", new GUIStyle(EditorStyles.miniButtonRight) { fixedWidth = 100 })) { WriteBufferToFile(Path.Combine(_loggerConfig.outputFolder, fileName)); } EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); _loggerConfig.logOnUpdate = EditorGUILayout.Toggle("Logging on Application Run", _loggerConfig.logOnUpdate); EditorGUILayout.HelpBox(new GUIContent("Exports on Application Quit. Overrides existing log file.")); EditorGUILayout.EndHorizontal(); GUILayout.Space(10); isSettingsExpanded = EditorGUILayout.Foldout(isSettingsExpanded, "Settings", toggleOnLabelClick: true); if (isSettingsExpanded) { EditorGUILayout.BeginHorizontal(); _loggerConfig.outputFolder = EditorGUILayout.TextField("Output Folder", _loggerConfig.outputFolder); if (GUILayout.Button("Select", new GUIStyle(EditorStyles.miniButtonRight) { fixedWidth = 75 })) { _loggerConfig.outputFolder = EditorUtility.OpenFolderPanel("Select a folder", _loggerConfig.outputFolder, ""); } EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginVertical(); _loggerConfig.bufferLength = EditorGUILayout.IntField("Buffer Length", _loggerConfig.bufferLength); EditorGUILayout.EndVertical(); EditorGUILayout.BeginVertical(); _loggerConfig.timeStampType = (LogToCSV.TimeStampType)EditorGUILayout.EnumPopup("Time Stamp Type", _loggerConfig.timeStampType); EditorGUILayout.EndVertical(); EditorGUILayout.BeginVertical(); SerializedProperty property = serializedObject.FindProperty("loggerConfig"); EditorGUILayout.PropertyField(property.FindPropertyRelative("onGetValue"), new GUIContent("Select Data Source Function")); EditorGUILayout.EndVertical(); EditorGUILayout.BeginVertical(); if (GUILayout.Button("Reset Settings", new GUIStyle(EditorStyles.miniButtonLeft) { fixedWidth = 150 })) { ResetSettings(); } EditorGUILayout.EndVertical(); serializedObject.ApplyModifiedProperties(); } } catch (Exception e) { Debug.Log(e.ToString()); } }