示例#1
0
 /// <summary>
 /// 显示一个新的UI,如果现在有正在显示的UI,那么会保存它的返回信息。
 /// </summary>
 /// <param name="uiCtrl"></param>
 /// <param name="displayInfo"></param>
 /// <returns></returns>
 public Task displayUIWithReturn(IUICtrl uiCtrl, UIDisplayInfo displayInfo)
 {
     //如果当前有已经在显示的UI
     if (_currentDisplayUICtrl != null)
     {
         //就获取它的显示信息,并放进历史ui显示信息栈里面
         UIDisplayInfo prevUIDisplayInfo = _currentDisplayUICtrl.getCurrentDisplayInfo();
         prevUIDisplayInfo.uiCtrl = _currentDisplayUICtrl;
         _historyUIDisplayInfoStack.Add(prevUIDisplayInfo);
     }
     _currentDisplayUICtrl = uiCtrl;
     return(uiCtrl.display(displayInfo));
 }
示例#2
0
    /// <summary>
    /// 打开一个UI
    /// </summary>
    /// <param name="id"></param>
    /// <returns></returns>
    protected UIConfig OpenUI(UIID id)
    {
        IUICtrl  ctrl   = _register[id];
        UIConfig uiJson = JsonMgr.GetSingleton().GetUIConfigByID((int)id);

        if (uiJson == null)
        {
            return(null);
        }
        UIViewBase vb = ctrl.GetView();

        if (vb == null)
        {
            GameObject uigo = GameObject.Instantiate(ResourceMgr.Instance.LoadResource(uiJson.Resid) as GameObject);
            if (uigo == null)
            {
                throw new System.Exception("加载UI资源出错 -------- " + uiJson.Resid);
            }
            vb = uigo.GetComponent <UIViewBase>();

            ctrl.SetView(vb);
            ctrl.OnInit();
            vb.AddComponent(uiJson);
        }
        vb.SetOrder(++layerOrder[uiJson.Layer]);

        if (!ctrl.IsOpen())
        {
            vb.SetView(true);
            ctrl.OnOpen();
        }
        if (!openList.Contains(id))
        {
            if ((uiJson.Layer.Equals("UI1") || uiJson.Layer.Equals("Default")))
            {
                Debug.LogFormat("Add into OpenList {0}", id);
                openList.Add(id);
            }
        }
        else
        {
            //换到队尾
            openList.Remove(id);
            openList.Add(id);
        }
        return(uiJson);
    }
示例#3
0
    public IUICtrl Open(UIID id, params object[] arg)
    {
        CanvasView.graphic.enabled = false;
        IUICtrl ctrl = GetCtrl(id);

        if (ctrl == null)
        {
            throw new System.Exception("没有注册UI ---" + id);
        }
        ctrl.SetParameters(arg);
        UIConfig uiJson = base.OpenUI(id);

        ctrl.isOpen = true;
        if (uiJson == null)
        {
            throw new System.Exception("ui表没有ID ----" + id);
        }
        NavigationCtrl(uiJson);
        CanvasView.graphic.enabled = true;
        return(ctrl);
    }
示例#4
0
 protected void Registration(UIID id, IUICtrl ctrl)
 {
     _register.Add(id, ctrl);
 }