예제 #1
0
        private BaseUILayer GetLayer(string layerName)
        {
            BaseUILayer UILayer = null;

            if (this._layerDic.ContainsKey(layerName))
            {
                UILayer = _layerDic[layerName];
            }
            else
            {
                GameObject gobj = GameObject.Instantiate(ResourcesManager.GetInstance().GetUILayerPrefab(layerName));
                UILayer                   = gobj.GetComponent <BaseUILayer>();
                UILayer.LayerName         = layerName;
                this._layerDic[layerName] = UILayer;
            }

            if (!_UIIndexDic.ContainsKey(UILayer.z_Index))
            {
                _UIIndexDic[UILayer.z_Index] = new GameObject(UILayer.z_Index.ToString(), typeof(RectTransform));
                _UIIndexDic[UILayer.z_Index].transform.SetParent(canvas.transform, false);
            }

            if (UILayer.isRemoveOther)
            {
                for (int i = 0; i < _UIIndexDic[UILayer.z_Index].transform.childCount; i++)
                {
                    this.RemoveLayer(_UIIndexDic[UILayer.z_Index].transform.GetChild(i).name.Replace("(Clone)", ""));
                }
            }

            UILayer.transform.SetParent(_UIIndexDic[UILayer.z_Index].transform, false);
            UILayer.transform.SetAsLastSibling();
            return(UILayer);
        }
예제 #2
0
        public void PushLayer(string layerName)
        {
            BaseUILayer UILayer = this.GetLayer(layerName);

            UILayer.gameObject.SetActive(true);
            UILayer.OnAddToStage();
        }
예제 #3
0
 public BaseUILayerMediator(BaseUILayer layer) : base(layer.LayerName + "Mediator" + layer.GetHashCode(), layer)
 {
 }