private static void OnDbgGUI_AnalyseFile(string filename) { NetDebugFile file = m_mapDbgFile[filename]; if (file == null) { file = new NetDebugFile(); file.Open(NetDebuger.DbgFileDir, filename); m_mapDbgFile.Add(filename, file); } for (int i = 0; i < file.ListAllSampleName.Count; i++) { string name = file.ListAllSampleName[i]; GUICurve curve = m_mapCurve[filename + ">" + name]; if (curve == null) { curve = new GUICurve(); curve.state = false; m_mapCurve[filename + ">" + name] = curve; } bool toggle = (bool)curve.state; toggle = GUILayout.Toggle(toggle, name); curve.state = toggle; if (toggle) { OnDbgGUI_ReportFileCurve(curve, file, name); } } }
private static void UpdateProfileSampleList() { List <NetSampleItem> list = NetDebuger.SampleList; int totalCnt = list.Count; if (m_profileNextIndex > totalCnt) { m_mapProfileSampleList = new DictionarySafe <string, List <NetSampleItem> >(); m_mapProfileCurve = new DictionarySafe <string, GUICurve>(); m_profileNextIndex = 0; } while (m_profileNextIndex < totalCnt) { NetSampleItem item = list[m_profileNextIndex]; List <NetSampleItem> listTemp = m_mapProfileSampleList[item.name]; if (listTemp == null) { listTemp = new List <NetSampleItem>(); m_mapProfileSampleList.Add(item.name, listTemp); GUICurve curve = new GUICurve(); curve.state = false; m_mapProfileCurve.Add(item.name, curve); } listTemp.Add(item); m_profileNextIndex++; } }
private static void OnDbgGUI_RealtimeProfiler() { if (m_mapProfileCurve == null) { m_mapProfileCurve = new DictionarySafe <string, GUICurve>(); } if (m_mapProfileSampleList == null) { m_mapProfileSampleList = new DictionarySafe <string, List <NetSampleItem> >(); } try { UpdateProfileSampleList(); } catch (Exception e) { Debuger.LogError(TAG, "OnDbgGUI_RealtimeProfiler() UpdateProfileSampleList: " + e.Message); } GUILayout.Label("每屏数据采样个数:" + m_NumPerPage); m_NumPerPage = (int)GUILayout.HorizontalSlider(m_NumPerPage, 10, 1800); foreach (KeyValuePair <string, List <NetSampleItem> > pair in m_mapProfileSampleList) { string name = pair.Key; GUICurve curve = m_mapProfileCurve[name]; bool toggle = (bool)curve.state; toggle = GUILayout.Toggle(toggle, name); curve.state = toggle; if (toggle) { OnGUI_ReportProfiler(curve, pair.Value); } } }
private static void OnGUI_ReportProfiler(GUICurve curve, List <NetSampleItem> list) { curve.Clear(); if (list != null) { int beginIndex = list.Count - (int)m_NumPerPage; if (beginIndex < 0) { beginIndex = 0; } List <Vector2> listPoints = NetDebugerGUI.DoAnalyseBasic(list, beginIndex); for (int i = 0; i < listPoints.Count; i++) { curve.AddPoint(listPoints[i]); } } float minY = m_profilerRangeMinY; float maxY = m_profilerRangeMaxY; GUILayout.Label("RangeY:"); GUILayout.BeginHorizontal(); minY = GUILayout.HorizontalSlider(minY, 0, maxY); maxY = GUILayout.HorizontalSlider(maxY, minY, 200); GUILayout.EndHorizontal(); curve.SetRangeY(minY, maxY); m_profilerRangeMinY = minY; m_profilerRangeMaxY = maxY; curve.DrawLayout(GUILayout.Height(200)); Rect rect = GUILayoutUtility.GetLastRect(); GUI.Label(rect, string.Format("X:[ {0} , {1} ]\nY:[ {2} , {3} ]", curve.MinX, curve.MaxX, curve.MinY, curve.MaxY)); }
private static void OnDbgGUI_ReportFileCurve(GUICurve curve, NetDebugFile file, string sampleName) { if (curve.Length == 0) { List <NetSampleItem> list = file.GetSampleList(sampleName); List <Vector2> listPoints = DoAnalyseBasic(list); curve.AddRangePoint(listPoints); } float minY = curve.MinY; float maxY = curve.MaxY; GUILayout.Label("RangeY:"); GUILayout.BeginHorizontal(); minY = GUILayout.HorizontalSlider(minY, 0, maxY); maxY = GUILayout.HorizontalSlider(maxY, minY, 200); GUILayout.EndHorizontal(); curve.SetRangeY(minY, maxY); curve.DrawLayout(GUILayout.Height(200)); Rect rect = GUILayoutUtility.GetLastRect(); GUI.Label(rect, string.Format("X:[ {0} , {1} ]\nY:[ {2} , {3} ]", curve.MinX, curve.MaxX, curve.MinY, curve.MaxY)); }