Ejemplo n.º 1
0
        private void BuildFrameVisibilityComponent()
        {
            if (m_frameInfo.FrameRoot == null)
            {
                Debug.LogError($"{m_frameInfo.ResName} can't find root gameobject");
            }

            if (m_frameCanvases != null)
            {
                Debug.LogWarning($"{m_frameInfo.ResName} already initialized");
            }

            m_frameCanvases     = m_frameInfo.FrameRoot.GetComponentsInChildren <Canvas>(true);
            m_canvasRenderers   = m_frameInfo.FrameRoot.GetComponentsInChildren <Renderer>(true);
            m_graphicRaycasters = m_frameInfo.FrameRoot.GetComponentsInChildren <GraphicRaycaster>(true);

            //init GUIFrame All Canvas Depth
            for (int i = 0; i < m_frameCanvases.Length; ++i)
            {
                CanvasDepthInfo canvasRawDepthInfo = new CanvasDepthInfo(m_frameCanvases[i]);
                this.m_frameAllCanvasDepthList.Add(canvasRawDepthInfo);
            }

            m_frameAllCanvasDepthList = m_frameAllCanvasDepthList.OrderByDescending(canvasDepth => canvasDepth.CurrentDepth).ToList();
            FrameDepth = this.m_frameInfo.UIRootCanvas.sortingOrder;

            this.m_isDirty = false;
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 将当前窗口置顶
        /// </summary>
        public void SetFrameToTopside()
        {
            GUIFrame currentTopsideFrame = FrameMgr.Instance.GetTopsideFrame();

            if (currentTopsideFrame != this.m_frameInfo)
            {
                int diffDepth = currentTopsideFrame.FrameDepth + 1;

                for (int i = 0; i < m_frameAllCanvasDepthList.Count; ++i)
                {
                    CanvasDepthInfo canvasRawDepthInfo = this.m_frameAllCanvasDepthList[i];
                    canvasRawDepthInfo.SetDiffDepth(diffDepth);
                }

                FrameDepth += diffDepth;

                FrameMgr.Instance.SetFrameDepthChanged(this.m_frameInfo);
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 重置窗口深度
        /// </summary>
        public void ResetFrameRenderDepth()
        {
            if (!FrameIsRawDepth())
            {
                if (this.m_frameAllCanvasDepthList.Count > 0 && this.m_frameAllCanvasDepthList[0].AdjustDiffDepth != 0)
                {
                    int adjuestDepth = this.m_frameAllCanvasDepthList[0].AdjustDiffDepth;
                    for (int i = 0; i < this.m_frameAllCanvasDepthList.Count; ++i)
                    {
                        CanvasDepthInfo canvasDepthInfo = this.m_frameAllCanvasDepthList[i];
                        canvasDepthInfo.Reset();
                    }

                    FrameDepth -= adjuestDepth;

                    FrameMgr.Instance.SetFrameDepthChanged(this.m_frameInfo);
                }
            }
        }