void OnGUI() { _scrollViewPosition = EditorGUILayout.BeginScrollView(_scrollViewPosition); { EditorLayout.DrawTexture(_headerTexture); var descriptionStyle = new GUIStyle(GUI.skin.label); descriptionStyle.wordWrap = true; for (int i = 0; i < _migrations.Length; i++) { var migration = _migrations[i]; _showMigration[i] = EditorLayout.DrawSectionHeaderToggle(migration.version, _showMigration[i]); if (_showMigration[i]) { EditorLayout.BeginSectionContent(); { EditorGUILayout.LabelField(migration.description, descriptionStyle); if (GUILayout.Button("Apply migration " + migration.version)) { migrate(migration, this); } } EditorLayout.EndSectionContent(); } } } EditorGUILayout.EndScrollView(); }
void drawSystemsMonitor(DebugSystems systems) { if (_systemsMonitor == null) { _systemsMonitor = new Graph(SYSTEM_MONITOR_DATA_LENGTH); _systemMonitorData = new Queue <float>(new float[SYSTEM_MONITOR_DATA_LENGTH]); } _showSystemsMonitor = EditorLayout.DrawSectionHeaderToggle("Performance", _showSystemsMonitor); if (_showSystemsMonitor) { EditorLayout.BeginSectionContent(); { EditorGUILayout.BeginHorizontal(); { EditorGUILayout.BeginVertical(); { EditorGUILayout.LabelField("Execution duration", systems.executeDuration.ToString()); EditorGUILayout.LabelField("Cleanup duration", systems.cleanupDuration.ToString()); } EditorGUILayout.EndVertical(); if (_stepButtonContent == null) { _stepButtonContent = EditorGUIUtility.IconContent("StepButton On"); } if (_pauseButtonContent == null) { _pauseButtonContent = EditorGUIUtility.IconContent("PauseButton On"); } systems.paused = GUILayout.Toggle(systems.paused, _pauseButtonContent, "CommandLeft"); if (GUILayout.Button(_stepButtonContent, "CommandRight")) { systems.paused = true; systems.StepExecute(); systems.StepCleanup(); addDuration((float)systems.executeDuration + (float)systems.cleanupDuration); } } EditorGUILayout.EndHorizontal(); if (!EditorApplication.isPaused && !systems.paused) { addDuration((float)systems.executeDuration + (float)systems.cleanupDuration); } _systemsMonitor.Draw(_systemMonitorData.ToArray(), 80f); } EditorLayout.EndSectionContent(); } }
static void drawSystemsOverview(DebugSystems systems) { _showDetails = EditorLayout.DrawSectionHeaderToggle("Details", _showDetails); if (_showDetails) { EditorLayout.BeginSectionContent(); { EditorGUILayout.LabelField(systems.name, EditorStyles.boldLabel); EditorGUILayout.LabelField("Initialize Systems", systems.totalInitializeSystemsCount.ToString()); EditorGUILayout.LabelField("Execute Systems", systems.totalExecuteSystemsCount.ToString()); EditorGUILayout.LabelField("Cleanup Systems", systems.totalCleanupSystemsCount.ToString()); EditorGUILayout.LabelField("TearDown Systems", systems.totalTearDownSystemsCount.ToString()); EditorGUILayout.LabelField("Total Systems", systems.totalSystemsCount.ToString()); } EditorLayout.EndSectionContent(); } }
void drawSystemList(DebugSystems systems) { _showSystemsList = EditorLayout.DrawSectionHeaderToggle("Systems", _showSystemsList); if (_showSystemsList) { EditorLayout.BeginSectionContent(); { EditorGUILayout.BeginHorizontal(); { DebugSystems.avgResetInterval = (AvgResetInterval)EditorGUILayout.EnumPopup("Reset average duration Ø", DebugSystems.avgResetInterval); if (GUILayout.Button("Reset Ø now", EditorStyles.miniButton, GUILayout.Width(88))) { systems.ResetDurations(); } } EditorGUILayout.EndHorizontal(); _threshold = EditorGUILayout.Slider("Threshold Ø ms", _threshold, 0f, 33f); _hideEmptySystems = EditorGUILayout.Toggle("Hide empty systems", _hideEmptySystems); EditorGUILayout.Space(); EditorGUILayout.BeginHorizontal(); { _systemSortMethod = (SortMethod)EditorGUILayout.EnumPopup(_systemSortMethod, EditorStyles.popup, GUILayout.Width(150)); _systemNameSearchString = EditorLayout.SearchTextField(_systemNameSearchString); } EditorGUILayout.EndHorizontal(); EditorGUILayout.Space(); _showInitializeSystems = EditorLayout.DrawSectionHeaderToggle("Initialize Systems", _showInitializeSystems); if (_showInitializeSystems && shouldShowSystems(systems, SystemInterfaceFlags.IInitializeSystem)) { EditorLayout.BeginSectionContent(); { var systemsDrawn = drawSystemInfos(systems, SystemInterfaceFlags.IInitializeSystem); if (systemsDrawn == 0) { EditorGUILayout.LabelField(string.Empty); } } EditorLayout.EndSectionContent(); } _showExecuteSystems = EditorLayout.DrawSectionHeaderToggle("Execute Systems", _showExecuteSystems); if (_showExecuteSystems && shouldShowSystems(systems, SystemInterfaceFlags.IExecuteSystem)) { EditorLayout.BeginSectionContent(); { var systemsDrawn = drawSystemInfos(systems, SystemInterfaceFlags.IExecuteSystem); if (systemsDrawn == 0) { EditorGUILayout.LabelField(string.Empty); } } EditorLayout.EndSectionContent(); } _showCleanupSystems = EditorLayout.DrawSectionHeaderToggle("Cleanup Systems", _showCleanupSystems); if (_showCleanupSystems && shouldShowSystems(systems, SystemInterfaceFlags.ICleanupSystem)) { EditorLayout.BeginSectionContent(); { var systemsDrawn = drawSystemInfos(systems, SystemInterfaceFlags.ICleanupSystem); if (systemsDrawn == 0) { EditorGUILayout.LabelField(string.Empty); } } EditorLayout.EndSectionContent(); } _showTearDownSystems = EditorLayout.DrawSectionHeaderToggle("TearDown Systems", _showTearDownSystems); if (_showTearDownSystems && shouldShowSystems(systems, SystemInterfaceFlags.ITearDownSystem)) { EditorLayout.BeginSectionContent(); { var systemsDrawn = drawSystemInfos(systems, SystemInterfaceFlags.ITearDownSystem); if (systemsDrawn == 0) { EditorGUILayout.LabelField(string.Empty); } } EditorLayout.EndSectionContent(); } } EditorLayout.EndSectionContent(); } }