private void DrawStackTrace(StateMachineDebugger.TransitionRecord record) { if (record.index < 0) { return; } try { var trace = record.stackTrace; var frames = trace.GetFrames(); DrawRecordInfo(record); Color defaultColor = GUI.backgroundColor; GUI.backgroundColor = Color.white; StateMachineDebuggerEditorUtil.DrawSplitLine(); GUILayout.BeginVertical(); scrollPos = GUILayout.BeginScrollView(scrollPos); for (int i = START_FRAME_INDEX; i < frames.Length; i++) { DrawStackFrame(frames[i]); } GUILayout.EndScrollView(); GUILayout.EndVertical(); GUI.backgroundColor = defaultColor; } catch { } }
private void OnGUI() { try { GUILayout.BeginHorizontal(); GUILayout.Label("History", GUILayout.Width(100)); GUILayout.Label("Time Ascending", GUILayout.Width(100)); timeAscending = EditorGUILayout.Toggle(timeAscending); GUILayout.EndHorizontal(); GUILayout.Space(10); var g_history = StateMachineDebugger.g_transitionHistory; StateMachineDebuggerEditorUtil.DrawTransitionHistory(g_history, -1, ref scrollPos, !timeAscending, true); } catch { } }
private void DrawTransitionHistory(StateMachineDebugger smd) { if (!smd.transitionValid) { return; } EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("History", GUILayout.Width(130)); EditorGUILayout.LabelField("Time Ascending", GUILayout.Width(100)); smd.timeAscending = EditorGUILayout.Toggle(smd.timeAscending); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginVertical(); StateMachineDebuggerEditorUtil.DrawTransitionHistory(smd.transitionHistory, 300, ref historyScrollPos, !smd.timeAscending, false); if (GUILayout.Button("Show Global History", GUILayout.Width(150))) { GlobalStateHistoryWindow.Create(); } EditorGUILayout.EndVertical(); }