コード例 #1
0
 protected void SetSortingOrder_Effect(int _nNewOrder)
 {
     foreach (Renderer renderer in EffectRenderer)
     {
         renderer.sortingOrder = USpeedUILayerManager.CheckSortingOrderRange(_nNewOrder);
     }
 }
コード例 #2
0
 private void DrawSortingLayer()
 {
     targetUILayerElement.IsUseSortingLayerOffset = EditorGUILayout.Toggle("是否设置层级偏移值", targetUILayerElement.IsUseSortingLayerOffset);
     if (targetUILayerElement.IsUseSortingLayerOffset)
     {
         EditorGUILayout.Space();
         GUILayout.BeginHorizontal();
         if (GUILayout.Button("-"))
         {
             targetUILayerElement.SortingLayerOrderOffset--;
         }
         GUILayout.Label(targetUILayerElement.SortingLayerOrderOffset.ToString(), EditorGUIUtils.wrapCenterLabelStyle);
         if (GUILayout.Button("+"))
         {
             targetUILayerElement.SortingLayerOrderOffset++;
         }
         if (GUILayout.Button("归零"))
         {
             targetUILayerElement.SortingLayerOrderOffset = 0;
         }
         GUILayout.EndHorizontal();
         EditorGUILayout.LabelField("当前所在Layer的序号:", USpeedUILayerManager.CalculateLayerElementOrder(targetUILayerElement).ToString());
         //(targetUILayerElement.SortingLayerOrder + targetUILayerElement.SortingLayerOrderOffset + targetUILayerElement.SortingLayrOrderParentOffset).ToString());
     }
     else
     {
         //if((targetUILayerElement.SortingLayerOrder + targetUILayerElement.SortingLayerOrderOffset + targetUILayerElement.SortingLayrOrderParentOffset > 0))
         if (USpeedUILayerManager.CalculateLayerElementOrder(targetUILayerElement) > 0)
         {
             targetUILayerElement.SortingLayerOrder       = 0;
             targetUILayerElement.SortingLayerOrderOffset = 0;
         }
     }
 }
コード例 #3
0
        protected override void PostSetVisible(bool _bVisible)
        {
            if (m_wndView == null)
            {
                return;
            }

            if (_bVisible)
            {
                //有全屏窗口显示中并当前WND_LAYER_POPUP01类型窗口需要显示时,将其提升到WND_LAYER_POPUP02层进行显示
                if (GetLayer() == WndLayerDef.WND_LAYER_POPUP01)
                {
                    UISystem.Instance.SetWndRenderAfterTheFillLayer(m_wndView, WndLayerDef.WND_LAYER_POPUP02);
                }
                //Popup类型显示时顶置
                if ((GetLayer() == WndLayerDef.WND_LAYER_POPUP01 || GetLayer() == WndLayerDef.WND_LAYER_POPUP02))
                {
                    UISystem.Instance.SetMutexWndVisbleAlone(this.m_wndView, WndLayerDef.WND_LAYER_POPUP01, WndLayerDef.WND_LAYER_FILL, WndLayerDef.WND_LAYER_POPUP02);

                    if (m_wndView.GetTransform() != null)
                    {
                        m_wndView.GetTransform().SetAsLastSibling();

                        //System.Diagnostics.Stopwatch watch = new System.Diagnostics.Stopwatch();
                        //StringBuilder sb = new StringBuilder();
                        //watch.Start();

                        //重新算该层级下所有界面的层级数
                        USpeedUILayer layer = USpeedUILayerManager.GetUILayer(GetLayer());
                        if (layer != null)
                        {
                            RectTransform LayerTrans = layer.GetRectTransform;
                            if (LayerTrans != null)
                            {
                                int count = LayerTrans.childCount;
                                for (int i = 0; i < count; ++i)
                                {
                                    USpeedUILayerElement element = LayerTrans.GetChild(i).GetComponent <USpeedUILayerElement>();
                                    if (element != null)
                                    {
                                        LayerTrans.GetChild(i).GetComponent <USpeedUILayerElement>().SetSortingOrder();
                                    }
                                }
                            }
                        }
                    }

                    //watch.Stop();
                    //sb.Append(m_wndView.gameObject.name + " time:" + watch.Elapsed.TotalMilliseconds);
                    //Debug.LogWarning(sb.ToString());
                }
            }
            else
            {
                UISystem.Instance.RemoveWndRenderAfterFillLayerVisible(this);
                //隐藏的时候还原回原来的层
                UISystem.Instance.AddView(m_wndView, GetLayer());
            }
        }
コード例 #4
0
ファイル: UIBaseWndView.cs プロジェクト: zwong91/Titan
 // 销毁
 public virtual void Destroy()
 {
     //移除Drag事件
     canDrag           = false;
     canUseImageEffect = false;
     //移除该View用到的动态Sprite
     USpriteManager.Instance.DeleteSprite(m_wnd.GetID());
     USpeedUILayerManager.UnRegisterWndViewForLayer(this);
 }
コード例 #5
0
        private void InitLayer()
        {
            m_layerTransform = new RectTransform[(int)WndLayerDef.WND_LAYER_MAX];
            m_layerTransform[(int)WndLayerDef.WND_LAYER_FIXED]    = (RectTransform)transform.GetChild(0);
            m_layerTransform[(int)WndLayerDef.WND_LAYER_POPUP01]  = (RectTransform)transform.GetChild(1);
            m_layerTransform[(int)WndLayerDef.WND_LAYER_FILL]     = (RectTransform)transform.GetChild(2);
            m_layerTransform[(int)WndLayerDef.WND_LAYER_POPUP02]  = (RectTransform)transform.GetChild(3);
            m_layerTransform[(int)WndLayerDef.WND_LAYER_OVERHEAD] = (RectTransform)transform.GetChild(4);


            m_canvas.sortingLayerName = USpeedUILayerManager.CalculateLayerName(WndLayerDef.WND_LAYER_MAX);
            m_canvas.sortingOrder     = USpeedUILayerManager.CalculateLayerOrder(WndLayerDef.WND_LAYER_MAX);

            SetupUILayer(WndLayerDef.WND_LAYER_FIXED);
            SetupUILayer(WndLayerDef.WND_LAYER_POPUP01);
            SetupUILayer(WndLayerDef.WND_LAYER_FILL);
            SetupUILayer(WndLayerDef.WND_LAYER_POPUP02);
            SetupUILayer(WndLayerDef.WND_LAYER_OVERHEAD);
        }
コード例 #6
0
ファイル: USpeedUILayerElement.cs プロジェクト: zwong91/Titan
        public void SetSortingOrder()
        {
            if (!IsUseSortingLayerOffset)
            {
                return;
            }

            int _nNewOrder = USpeedUILayerManager.CalculateLayerElementOrder(this);//SortingLayerOrder + SortingLayerOrderOffset + SortingLayrOrderParentOffset;

            switch (UILayerElementType)
            {
            case EUILayerElementType.ELET_UI:
                SetSortingOrder_UI(_nNewOrder);
                break;

            case EUILayerElementType.ELET_Effect:
                SetSortingOrder_Effect(_nNewOrder);
                break;

            default:
                break;
            }
            //Debug.LogWarning("注册UIElement:" + this.gameObject.name + ",层级为:" + _nNewOrder);
        }
コード例 #7
0
ファイル: UIBaseWndView.cs プロジェクト: zwong91/Titan
 // IUIWndView
 // 初始化
 public virtual bool Init(IUIWnd wnd)
 {
     m_wnd = wnd;
     USpeedUILayerManager.RegisterWndViewForLayer(this);
     return(true);
 }
コード例 #8
0
ファイル: USpeedUILayer.cs プロジェクト: zwong91/Titan
 public void UnRegisterUILayer()
 {
     USpeedUILayerManager.UnRegisterUILayer(UILayerDef, this);
 }
コード例 #9
0
 protected void SetSortingOrder_UI(int _nNewOrder)
 {
     UICanvasRenderer.overrideSorting = true;
     UICanvasRenderer.sortingOrder    = USpeedUILayerManager.CheckSortingOrderRange(_nNewOrder);
 }
コード例 #10
0
ファイル: USpeedUILayerElement.cs プロジェクト: zwong91/Titan
 public void UnRegisterUIElement()
 {
     USpeedUILayerManager.UnRegisterElementForLayer(UILayer, this);
 }