void DoToolbar() { var setting = LuaDeepProfilerSetting.Instance; #region profiler settting GUILayout.Label("profiler setting"); GUILayout.BeginVertical("Box"); EditorGUILayout.BeginHorizontal(); bool flag = GUILayout.Toggle(setting.isDeepLuaProfiler, "Deep Profiler Lua"); if (flag != setting.isDeepLuaProfiler) { setting.isDeepLuaProfiler = flag; if (!flag) { setting.isCleanMode = false; } EditorApplication.isPlaying = false; } flag = GUILayout.Toggle(setting.isDeepMonoProfiler, "Deep Profiler Mono"); if (flag != setting.isDeepMonoProfiler) { setting.isDeepMonoProfiler = flag; EditorApplication.isPlaying = false; InjectMethods.Recompile(); } flag = GUILayout.Toggle(setting.discardInvalid, "Discard Invalid"); if (flag != setting.discardInvalid) { setting.discardInvalid = flag; } flag = GUILayout.Toggle(setting.isCleanMode, "PreCompile Lua(Use InjectLua.exe)"); if (flag != setting.isCleanMode) { setting.isCleanMode = flag; if (setting.isCleanMode) { setting.isDeepLuaProfiler = true; } EditorApplication.isPlaying = false; } EditorGUILayout.EndHorizontal(); GUILayout.Space(5); if (GUILayout.Button("ReCompile", GUILayout.Height(50))) { InjectMethods.Recompile(); } GUILayout.Space(5); GUILayout.EndVertical(); #endregion #region socket GUILayout.Space(10); GUILayout.Label("connet"); GUILayout.BeginVertical("Box"); GUILayout.Space(5); EditorGUILayout.BeginHorizontal(); GUILayout.Label("ip:", GUILayout.Height(30), GUILayout.Width(35)); setting.ip = EditorGUILayout.TextField(setting.ip, GUILayout.Height(16), GUILayout.Width(100)); GUILayout.Label("port:", GUILayout.Height(30), GUILayout.Width(35)); setting.port = EditorGUILayout.IntField(setting.port, GUILayout.Height(16), GUILayout.Width(50)); EditorGUILayout.EndHorizontal(); /* * if (GUILayout.Button("Connent", GUILayout.Height(50))) * { * NetWorkClient.ConnectServer(setting.ip, setting.port); * } * GUILayout.Space(5);*/ GUILayout.EndVertical(); #endregion #region diff GUILayout.BeginVertical("Box"); GUILayout.Space(5); GUILayout.BeginHorizontal(); #if (UNITY_5 || UNITY_2017_1_OR_NEWER) if (GUILayout.Button("MarkLuaRecord", GUILayout.Height(30))) { LuaHook.Record(); m_luaDiffScrollView.MarkIsRecord(); } if (GUILayout.Button("DiffRecord", GUILayout.Height(30))) { m_luaDiffScrollView.DelDiffInfo(LuaHook.Diff()); } if (GUILayout.Button("ClearDiff", GUILayout.Height(30))) { m_luaDiffScrollView.Clear(); } GUILayout.EndHorizontal(); m_luaDiffScrollView.DoRefScroll(); #endif GUILayout.EndVertical(); #endregion #region capture /* * GUILayout.Space(10); * * GUILayout.Label("capture setting"); * GUILayout.BeginVertical("Box"); * * flag = GUILayout.Toggle(LuaDeepProfilerSetting.Instance.isNeedCapture, "NeedCapture"); * if (flag != LuaDeepProfilerSetting.Instance.isNeedCapture) * { * LuaDeepProfilerSetting.Instance.isNeedCapture = flag; * if (flag) * { * GameViewUtility.ChangeGameViewSize(480, 270); * } * } * * GUILayout.Space(10); * * EditorGUILayout.BeginHorizontal(); * GUILayout.Label("lua gc", GUILayout.Height(30), GUILayout.Width(45)); * LuaDeepProfilerSetting.Instance.captureLuaGC * = EditorGUILayout.IntField(LuaDeepProfilerSetting.Instance.captureLuaGC, GUILayout.Height(16), GUILayout.Width(50)); * LuaDeepProfilerSetting.Instance.captureLuaGC = Mathf.Max(0, LuaDeepProfilerSetting.Instance.captureLuaGC); * GUILayout.Label("B", GUILayout.Height(30), GUILayout.Width(20)); * * GUILayout.Label("mono gc", GUILayout.Height(30), GUILayout.Width(55)); * LuaDeepProfilerSetting.Instance.captureMonoGC * = EditorGUILayout.IntField(LuaDeepProfilerSetting.Instance.captureMonoGC, GUILayout.Height(16), GUILayout.Width(50)); * LuaDeepProfilerSetting.Instance.captureMonoGC = Mathf.Max(0, LuaDeepProfilerSetting.Instance.captureMonoGC); * GUILayout.Label("B", GUILayout.Height(30), GUILayout.Width(20)); * * GUILayout.Label("capture ", GUILayout.Height(30), GUILayout.Width(50)); * LuaDeepProfilerSetting.Instance.captureFrameRate * = EditorGUILayout.IntField(LuaDeepProfilerSetting.Instance.captureFrameRate, GUILayout.Height(16), GUILayout.Width(50)); * LuaDeepProfilerSetting.Instance.captureFrameRate = Mathf.Max(0, LuaDeepProfilerSetting.Instance.captureFrameRate); * GUILayout.Label("FPS", GUILayout.Height(30), GUILayout.Width(30)); * * EditorGUILayout.EndHorizontal(); * * GUILayout.EndVertical(); */ #endregion }
void DoToolbar() { EditorGUILayout.BeginHorizontal(EditorStyles.toolbar); #region clear bool isClear = GUILayout.Button("Clear", EditorStyles.toolbarButton, GUILayout.Height(30)); if (isClear) { currentFrameIndex = 0; m_TreeView.Clear(true); m_luaRefScrollView.ClearRefInfo(true); m_luaDiffScrollView.Clear(); ClearConsole(); } GUILayout.Space(5); #endregion #region history string recordName = "Record"; bool flag = GUILayout.Toggle(LuaDeepProfilerSetting.Instance.isRecord, recordName, EditorStyles.toolbarButton, GUILayout.Height(30)); if (flag != LuaDeepProfilerSetting.Instance.isRecord) { LuaDeepProfilerSetting.Instance.isRecord = flag; } GUILayout.Space(25); #endregion var setting = LuaDeepProfilerSetting.Instance; #region socket bool oldIsLocal = LuaDeepProfilerSetting.Instance.isLocal; string localName = "local mode"; if (!LuaDeepProfilerSetting.Instance.isLocal) { localName = "remote mode"; } LuaDeepProfilerSetting.Instance.isLocal = GUILayout.Toggle(LuaDeepProfilerSetting.Instance.isLocal, localName, EditorStyles.toolbarButton, GUILayout.Height(30)); if (!oldIsLocal && LuaDeepProfilerSetting.Instance.isLocal) { OpenLocalMode(); } if (!LuaDeepProfilerSetting.Instance.isLocal) { if (GUILayout.Button("OpenService", EditorStyles.toolbarButton, GUILayout.Height(30))) { ClearConsole(); NetWorkServer.RealClose(); currentFrameIndex = 0; m_TreeView.Clear(true); LuaProfiler.UnRegistReceive(); NetWorkServer.UnRegisterReceive(); NetWorkServer.RegisterOnReceiveSample(m_TreeView.LoadRootSample); NetWorkServer.RegisterOnReceiveRefInfo(m_luaRefScrollView.DelRefInfo); NetWorkServer.RegisterOnReceiveDiffInfo(m_luaDiffScrollView.DelDiffInfo); NetWorkServer.BeginListen("0.0.0.0", port); } GUILayout.Label("port:", GUILayout.Height(30), GUILayout.Width(35)); port = EditorGUILayout.IntField(port, GUILayout.Height(16), GUILayout.Width(50)); if (GUILayout.Button("CloseService", EditorStyles.toolbarButton, GUILayout.Height(30))) { ClearConsole(); NetWorkServer.RealClose(); UnityEngine.Debug.Log("<color=#ff0000>disconnect</color>"); } } else { GUILayout.Space(10); flag = GUILayout.Toggle(setting.isDeepLuaProfiler, "Deep Lua", EditorStyles.toolbarButton); if (flag != setting.isDeepLuaProfiler) { setting.isDeepLuaProfiler = flag; if (!flag) { setting.isCleanMode = false; } EditorApplication.isPlaying = false; } flag = GUILayout.Toggle(setting.isDeepMonoProfiler, "Deep Mono", EditorStyles.toolbarButton); if (flag != setting.isDeepMonoProfiler) { setting.isDeepMonoProfiler = flag; EditorApplication.isPlaying = false; InjectMethods.Recompile(); } flag = GUILayout.Toggle(setting.discardInvalid, "Discard Invalid", EditorStyles.toolbarButton); if (flag != setting.discardInvalid) { setting.discardInvalid = flag; } flag = GUILayout.Toggle(setting.isCleanMode, "PreCompile Lua", EditorStyles.toolbarButton); if (flag != setting.isCleanMode) { setting.isCleanMode = flag; if (setting.isCleanMode) { setting.isDeepLuaProfiler = true; Selection.activeObject = LuaProfilerPrecompileSetting.Instance; #if UNITY_2018_2_OR_NEWER EditorApplication.ExecuteMenuItem("Window/General/Inspector"); #else EditorApplication.ExecuteMenuItem("Window/Inspector"); #endif } EditorApplication.isPlaying = false; } } GUILayout.Space(25); if (GUILayout.Button("MarkStaticRecord", EditorStyles.toolbarButton, GUILayout.Height(30))) { if (!LuaDeepProfilerSetting.Instance.isLocal) { NetWorkServer.SendCmd(3); } else { m_luaDiffScrollView.DelDiffInfo(LuaHook.RecordStatic()); } m_luaDiffScrollView.MarkIsStaticRecord(); } if (GUILayout.Button("MarkLuaRecord", EditorStyles.toolbarButton, GUILayout.Height(30))) { if (!LuaDeepProfilerSetting.Instance.isLocal) { NetWorkServer.SendCmd(1); } else { m_luaDiffScrollView.DelDiffInfo(LuaHook.Record()); } m_luaDiffScrollView.MarkIsRecord(); } if (GUILayout.Button("DiffRecord", EditorStyles.toolbarButton, GUILayout.Height(30))) { if (!LuaDeepProfilerSetting.Instance.isLocal) { NetWorkServer.SendCmd(2); } else { m_luaDiffScrollView.DelDiffInfo(LuaHook.Diff()); } } if (GUILayout.Button("ClearDiff", EditorStyles.toolbarButton, GUILayout.Height(30))) { m_luaDiffScrollView.Clear(); } GUILayout.Space(20); if (GUILayout.Button("AddLuaDir", EditorStyles.toolbarButton, GUILayout.Height(30))) { LocalToLuaIDE.AddExternalProjectRootPath(); } if (GUILayout.Button("SetIDE", EditorStyles.toolbarButton, GUILayout.Height(30))) { LocalToLuaIDE.SetExternalEditorPath(); } if (GUILayout.Button("ClearLuaDir", EditorStyles.toolbarButton, GUILayout.Height(30))) { LocalToLuaIDE.ClearPath(); } GUILayout.Space(10); if (NetWorkServer.acceptThread != null) { Color c = GUI.color; GUI.color = Color.green; GUILayout.Label("listerning.."); GUI.color = c; } #endregion #region gc value GUILayout.Space(100); GUILayout.FlexibleSpace(); #endregion if (m_TreeView != null) { m_TreeView.searchString = m_SearchField.OnToolbarGUI(m_TreeView.searchString); m_TreeView.toggleMerge = GUILayout.Toggle(m_TreeView.toggleMerge, "merge", EditorStyles.toolbarButton, GUILayout.Height(30)); } isShowRef = GUILayout.Toggle(isShowRef, "show refInfo", EditorStyles.toolbarButton, GUILayout.Height(30)); EditorGUILayout.EndHorizontal(); }