void drawSystemsMonitor(DebugSystems systems) { if(_systemsMonitor == null) { _systemsMonitor = new SystemsMonitor(SYSTEM_MONITOR_DATA_LENGTH); _systemMonitorData = new Queue<float>(new float[SYSTEM_MONITOR_DATA_LENGTH]); } EntitasEditorLayout.BeginVerticalBox(); { EditorGUILayout.LabelField("Execution duration", EditorStyles.boldLabel); EntitasEditorLayout.BeginHorizontal(); { EditorGUILayout.LabelField("Execution duration", systems.executeDuration.ToString()); var buttonStyle = new GUIStyle(GUI.skin.button); if(systems.paused) { buttonStyle.normal = GUI.skin.button.active; } if(GUILayout.Button("▌▌", buttonStyle, GUILayout.Width(50))) { systems.paused = !systems.paused; } if(GUILayout.Button("Step", GUILayout.Width(50))) { systems.paused = true; systems.StepExecute(); systems.StepCleanup(); addDuration((float)systems.executeDuration); } } EntitasEditorLayout.EndHorizontal(); if(!EditorApplication.isPaused && !systems.paused) { addDuration((float)systems.executeDuration); } _systemsMonitor.Draw(_systemMonitorData.ToArray(), 80f); } EntitasEditorLayout.EndVertical(); }