//增加一层界面 private void AddNewLayer(GameObject obj, LastLayerStatus s_LLStatus) { if (uiRoot == null) { uiRoot = GameObject.Find("UI Root").transform; } obj.transform.parent = uiRoot; obj.transform.localScale = new Vector3(1, 1, 1); UIComponent layerComp = obj.GetComponent <UIComponent>(); if (currLayerComp != null) { layerComp.PrevLayer = currLayerComp; UIComponent currUILayer = currLayerComp; currUILayer.s_LastLayerStatus = s_LLStatus; switch (s_LLStatus) { case LastLayerStatus.Active_N_Net_N: currUILayer.OnExit(); break; case LastLayerStatus.Active_Y_Net_N: currUILayer.AcceptNet = false; break; case LastLayerStatus.Active_Y_Net_Y: break; default: break; } } layerCompList.Add(layerComp); currLayerComp = layerComp; layerComp.Init(); layerComp.OnEnter(); }
//新建一层,叠加或覆盖 如果replace=true 则s_LLStatus的值无效 public GameObject CreateAndAdd(string uiLayer, string uiname, bool replace = true, LastLayerStatus s_LLStatus = LastLayerStatus.Active_N_Net_N) { if (currLayerComp != null) { if (currLayerComp.name == uiname) { Debug.Log("T CreateAndAdd 同样的界面不要连续加两次!" + uiname); return(currLayerComp.gameObject); } } //实例化 GameObject s_UILayer = UILayerManage.InstantiateUIPre(uiname); //添加通用组件 s_UILayer.AddComponent <UIComponent>(); //添加本身组件 s_UILayer.AddComponent(uiLayer); // if (s_UILayer != null) { if (replace) { ReplaceLayer(s_UILayer); } else { AddNewLayer(s_UILayer, s_LLStatus); } } return(s_UILayer); }