protected virtual void DrawSubArea(SubAreaContext subAreaCtx) { var rect = subAreaCtx.GetRealRect(width, height - toolBarHeight); rect.position += new Vector2(0, toolBarHeight); GUILayout.BeginArea(rect); if (Event.current.type == EventType.Repaint) { new GUIStyle("flow background").Draw(new Rect(Vector2.zero, rect.size), false, false, false, false); //绘制背景颜色 GL.PushMatrix(); CreateLineMaterial(); lineMaterial.SetPass(0); GLHelper.DrawRectSolid(new Vector2(0, 0), rect.size, subAreaCtx.m_areaDef.m_bgColor); GL.PopMatrix(); } if (subAreaCtx.m_areaDef.m_isCanvas) { DrawCanvas(subAreaCtx as CanvasContext); } else { OnDrawSubArea(subAreaCtx); } GUILayout.EndArea(); }
protected virtual void OnLeaveSubArea(SubAreaContext subAreaCtx) { if (subAreaCtx == null) { return; } UnityEngine.Debug.Log("Leave SubArea:" + subAreaCtx.m_areaDef.m_showName); }
protected virtual void OnDrawSubArea(SubAreaContext subAreaCtx) { GUILayout.Label(subAreaCtx.m_areaDef.m_showName); if (subAreaCtx.m_areaDef.m_showName == "DebugInfos") { DrawDebugInfos(); } }
protected virtual void ProcessEventInSubArea(SubAreaContext subAreaCtx) { }
protected virtual void OnEnterSubArea(SubAreaContext subAreaCtx) { UnityEngine.Debug.Log("Leave SubArea:" + subAreaCtx.m_areaDef.m_showName); }