public void AdjustPanels(UIPanel[] uiPanels, PanelBase.DepthType depthType) { if (uiPanels == null || uiPanels.Length == 0) { return; } // adjust depth by logic depth int baseDepth = PanelBase.DepthValue[(int)depthType]; int depth = ++depthTypeValue[(int)depthType]; int logicDepth = depth * PanelBase.PanelDepthInteval + baseDepth; for (int i = 0; i < uiPanels.Length; ++i) { for (int j = i; j < uiPanels.Length; ++j) { if (uiPanels[i].depth > uiPanels[j].depth) { var tempPanel = uiPanels[i]; uiPanels[i] = uiPanels[j]; uiPanels[j] = tempPanel; } } } for (int i = 0; i < uiPanels.Length; ++i) { uiPanels[i].depth = logicDepth + i * PanelBase.PanelDepthPerInteval; uiPanels[i].renderQueue = UIPanel.RenderQueue.StartAt; uiPanels[i].startingRenderQueue = uiPanels[i].depth; } }
// 优化low级别的界面,优化overdraw public void SetPanelVisible(bool vis, PanelBase.DepthType depthType = PanelBase.DepthType.Low) { foreach (var panellist in panelTable) { for (int i = 0; i < panellist.Value.Count; ++i) { if (panellist.Value[i] != null) { var panelBase = panellist.Value[i].GetComponent <PanelBase>(); if (panelBase.depthType == depthType) { panellist.Value[i].SetActive(vis); } } } } }