Пример #1
0
    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;
        }
    }
Пример #2
0
 // 优化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);
                 }
             }
         }
     }
 }