Exemple #1
0
 /// <summary>
 /// 只能被UIMgr调用
 /// </summary>
 /// <param name="viewId">View identifier.</param>
 /// <param name="prefab">Prefab.</param>
 /// <param name="parentTf">Parent tf.</param>
 public void Open(UIViewId viewId, GameObject prefab, Transform parentTf, object param)
 {
     ViewId   = viewId;
     PrefabGO = GameObject.Instantiate(prefab);
     PrefabTf = PrefabGO.transform;
     PrefabTf.SetParent(parentTf);
     PrefabTf.Reset();
     OnOpend(param);
 }
Exemple #2
0
    public void RegisterView(UIViewId viewId, string prefabName, System.Type viewType)
    {
        ViewConfigInfo configInfo = new ViewConfigInfo();

        configInfo.prefabName = prefabName;
        configInfo.viewType   = viewType;
        if (mViewConfig.ContainsKey(viewId))
        {
            Logger.LogError("UIManager register same viewId:" + viewId.ToString());
        }
        else
        {
            mViewConfig.Add(viewId, configInfo);
        }
    }
Exemple #3
0
    public void OpenView(UIViewId viewId, object param = null, System.Action hdlOnSuccess = null)
    {
        Logger.LogInfo("打开界面: " + viewId.ToString());
        ViewConfigInfo configInfo = null;

        if (!mViewConfig.TryGetValue(viewId, out configInfo))
        {
            Logger.LogError("UIManager open not registered view:" + viewId.ToString());
            return;
        }

        if (mOpendViewDic.ContainsKey(viewId))
        {
            Logger.LogError("UIManager open opened view,viewId:" + viewId.ToString());
            return;
        }

        if (mOpeningViewDic.ContainsKey(viewId))
        {
            mOpeningViewDic [viewId] = param;
            return;
        }

        mOpeningViewDic.Add(viewId, param);
        GameMain.Instance.ResMgr.LoadResourceAsync(this, configInfo.prefabName, typeof(GameObject), delegate(Object prefab) {
            if (mWaitCloseingSet.Contains(viewId))
            {
                GameMain.Instance.ResMgr.UnloadResource(configInfo.prefabName, typeof(GameObject));
                mWaitCloseingSet.Remove(viewId);
            }
            else
            {
                UIViewBase viewBase = System.Activator.CreateInstance(mViewConfig[viewId].viewType) as UIViewBase;
                viewBase.Open(viewId, prefab as GameObject, mViewRoot, mOpeningViewDic[viewId]);
                mOpendViewDic.Add(viewId, viewBase);
                if (null != hdlOnSuccess)
                {
                    hdlOnSuccess.Invoke();
                }
            }
            mOpeningViewDic.Remove(viewId);
        }, delegate(string errorCode) {
            Logger.LogError("UIManager load " + configInfo.prefabName + " error, code:" + errorCode);
        });
    }
Exemple #4
0
 public void CleseView(UIViewId viewId)
 {
     if (mOpendViewDic.ContainsKey(viewId))
     {
         UIViewBase viewBase = mOpendViewDic [viewId];
         viewBase.Close();
         ViewConfigInfo configInfo = mViewConfig [viewId];
         GameMain.Instance.ResMgr.UnloadResource(configInfo.prefabName, typeof(GameObject));
     }
     else if (mOpendViewDic.ContainsKey(viewId))
     {
         if (!mWaitCloseingSet.Contains(viewId))
         {
             mWaitCloseingSet.Add(viewId);
         }
     }
     else
     {
         Logger.LogWarning("UIManager close not opend or opening view: " + viewId.ToString());
     }
 }