private void OpenLocalMode() { ClearConsole(); NetWorkServer.RealClose(); currentFrameIndex = 0; m_TreeView.Clear(true); LPLuaProfiler.UnRegistReceive(); NetWorkServer.UnRegisterReceive(); LPLuaProfiler.RegisterOnReceiveSample(m_TreeView.LoadRootSample); LPLuaProfiler.RegisterOnReceiveRefInfo(m_luaRefScrollView.DelRefInfo); LPLuaProfiler.RegisterOnReceiveDiffInfo(m_luaDiffScrollView.DelDiffInfo); }
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); LPLuaProfiler.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(Use InjectLua.exe)", EditorStyles.toolbarButton); if (flag != setting.isCleanMode) { setting.isCleanMode = flag; if (setting.isCleanMode) { setting.isDeepLuaProfiler = true; } 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(LPLuaHook.RecordStatic()); } m_luaDiffScrollView.MarkIsStaticRecord(); } if (GUILayout.Button("MarkLuaRecord", EditorStyles.toolbarButton, GUILayout.Height(30))) { if (!LuaDeepProfilerSetting.Instance.isLocal) { NetWorkServer.SendCmd(1); } else { m_luaDiffScrollView.DelDiffInfo(LPLuaHook.Record()); } m_luaDiffScrollView.MarkIsRecord(); } if (GUILayout.Button("DiffRecord", EditorStyles.toolbarButton, GUILayout.Height(30))) { if (!LuaDeepProfilerSetting.Instance.isLocal) { NetWorkServer.SendCmd(2); } else { m_luaDiffScrollView.DelDiffInfo(LPLuaHook.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(); }