Esempio n. 1
0
        private void HideLayerViews(LayerTransform layerTransform)
        {
            for (int i = layerTransform.viewList.Count - 1; i >= 0; i--)
            {
                View view = layerTransform.viewList[i];
                if (view.transform == null || !view.transform.gameObject.activeSelf)
                {
                    continue;
                }
                view.transform.gameObject.SetActive(false);
                layerTransform.viewList.RemoveAt(i);

                if (view.config.hideRule == ViewHideRule.SaveToStack)
                {
                    Stack <View> stack;
                    if (!viewShowStackMap.TryGetValue(view.config.layer, out stack))
                    {
                        stack = new Stack <View>();
                        viewShowStackMap.Add(view.config.layer, stack);
                    }
                    stack.Push(view);
                }
                else if (view.config.hideRule == ViewHideRule.DestroyAsset)
                {
                    view.DestroyAsset();
                }
            }
        }
Esempio n. 2
0
        internal void ShowView(View view)
        {
            int index = viewLayerList.FindIndex((item) => item.layer == view.config.layer);

            if (index == -1)
            {
                Debug.LogWarningFormat("Show view {0} failed! Have not include layer {1}", view.config.viewName, view.config.layer);
                return;
            }

            LayerTransform layerTransform = viewLayerList[index];

            switch (view.config.showRule)
            {
            case ViewShowRule.HideSameLayerView:
                HideLayerViews(layerTransform);
                break;

            case ViewShowRule.HideLowLayerView:
                for (int i = index; i >= 0; i--)
                {
                    HideLayerViews(viewLayerList[i]);
                }
                break;
            }
            if (view.transform.parent == viewLayerList[index].transform)
            {
                view.transform.SetAsLastSibling();
            }
            else
            {
                view.transform.SetParent(viewLayerList[index].transform, false);
            }
            view.transform.gameObject.SetActive(true);
            layerTransform.viewList.Add(view);
        }