/// <summary> /// 根据UI的ID显示UI /// </summary> /// <param name="id"></param> public virtual void ShowUI <T>(T id) { Transform uiTrans = SpawnUI(id.ToString()); AUIBase ui = uiTrans.GetComponent <AUIBase>(); if (ui == null) { throw new Exception("Can't find AUIBase component"); } if (ui.GetLayer() == UILayer.BasicUI) { UIHandler newHandler = new UIHandler(ui); if (uiStack.Count > 0) { uiStack.Peek().Hide(ui.GetLayer()); } AddListener(ui, id.ToString(), newHandler); newHandler.Show(ui); uiStack.Push(newHandler); } else { AddListener(ui, id.ToString(), uiStack.Peek()); uiStack.Peek().Show(ui); } }
/// <summary> /// 显示UI /// </summary> /// <param name="ui"></param> public void Show(AUIBase ui) { switch (ui.GetLayer()) { case UILayer.BasicUI: ShowUI <BasicUI>(ui); break; case UILayer.OverlayUI: ShowUI(ui, data.OverlayUIStack); break; case UILayer.TopUI: ShowUI(ui, data.TopUIStack); break; } }
/// <summary> /// 设置UI到其对应的层级父物体下 /// </summary> /// <param name="ui"></param> public void SetUILayer(AUIBase ui) { ui.transform.SetParent(UILayerObjDic[ui.GetLayer()].transform); }