Exemplo n.º 1
0
        public void OnUIChange(GameEvent ge, EventParameter parameter)
        {
            if (MainPanelMgr.Instance.IsShow("TipShowUI"))
            {
                return;
            }

            //只处理全屏UI
            MainPanelUICfg cfg = MainPanelMgr.Instance.GetPanelConfig(parameter.stringParameter);

            if (!cfg.fullview)
            {
                return;
            }

            if (ge == GameEvent.GE_UI_OPEN)
            {
                mCamera.enabled = false;
            }
            else
            {
                if (!MainPanelMgr.Instance.IsHaveFullView())
                {
                    mCamera.enabled = true;
                }
            }
        }
Exemplo n.º 2
0
 public void RegPanel(MainPanelUICfg mpCfg, string panelName)
 {
     if (!mPrefabMap.ContainsKey(panelName))
     {
         mPrefabMap.Add(panelName, mpCfg);
     }
 }
Exemplo n.º 3
0
    ////////////////////////////////////单件处理////////////////////////////////////////////////



    public override void Init()
    {
        base.Init();

        if (mPrefabMap.Count <= 0)
        {
            Dictionary <int, LuaTable> data = LuaMgr.Instance.GetLuaEnv().Global.Get <Dictionary <int, LuaTable> >("t_MainPanelUI");
            if (data == null)
            {
                LogMgr.LogError("请检查 MainPanelUIConfig ");
                return;
            }
            foreach (KeyValuePair <int, LuaTable> v in data)
            {
                LuaTable       t    = v.Value;
                MainPanelUICfg mpUI = new MainPanelUICfg();
                mpUI.id            = t.Get <int>("id");
                mpUI.panelName     = t.Get <string>("panelName");
                mpUI.type          = t.Get <int>("type");
                mpUI.fullview      = t.Get <bool>("fullview");
                mpUI.ignoreguide   = t.Get <bool>("ignoreguide");
                mpUI.cache         = t.Get <bool>("cache");
                mpUI.preload       = t.Get <bool>("preload");
                mpUI.prefabPath    = t.Get <string>("prefabPath");
                mpUI.subTypeLayer  = t.Get <int>("subTypeLayer");
                mpUI.enumLayerType = t.Get <int>("enumLayerType");
                mpUI.AnimationType = t.Get <int>("AnimationType");
                if (mpUI.panelName.Length > 2)
                {
                    RegPanel(mpUI, mpUI.panelName);
                }

                if (mpUI.preload)
                {
                    mPreloadList.Add(mpUI);
                }
            }
        }

        //预加载
        if (PlayerData.Instance.RoleID != 0)
        {
            for (int i = 0; i < mPreloadList.Count; ++i)
            {
                MainPanelUICfg cfg = mPreloadList[i];
                if (!panelDic.ContainsKey(cfg.panelName))
                {
                    LoadPanel(cfg, cfg.panelName);
                }
            }
        }

        showFirstPanel();
    }
Exemplo n.º 4
0
    public void LoadPanel(MainPanelUICfg mpUI, string panelName)
    {
        GameObject panelPrefab = CoreEntry.gResLoader.Load(mpUI.prefabPath) as GameObject;

        if (panelPrefab == null)
        {
            LogMgr.UnityError("没有找到 界面路径:" + mpUI.prefabPath);
            return;
        }

        GameObject panelObj = GameObject.Instantiate(panelPrefab);

        if (panelObj.activeSelf)
        {
            LogMgr.LogError("保存该UI预设体时,名字左侧不能勾选保存! name:{0}", panelName);
        }
        PanelBase panelBase = panelObj.GetComponent(typeof(PanelBase)) as PanelBase;

        panelBase.Canvas             = panelBase.GetComponent <Canvas>();
        panelBase.Canvas.renderMode  = RenderMode.ScreenSpaceCamera;
        panelBase.Canvas.worldCamera = uiCamera;
        panelBase.mCfg = mpUI;

        panelObj.transform.SetParent(uUIRootObj.transform);
        RectTransform rectTrans = panelObj.transform as RectTransform;

        rectTrans.localPosition = Vector3.zero;
        rectTrans.sizeDelta     = new Vector2(0, 0);
        rectTrans.localScale    = panelObj.transform.lossyScale;

        panelBase.DefaultSortOrder = GetLayerSortOrder((int)mpUI.enumLayerType);
        panelBase.Layer            = (int)(mpUI.enumLayerType + 1);
        panelBase.SortOrder        = panelBase.DefaultSortOrder + mpUI.subTypeLayer;
        //panelBase.PanelMgr = this;
        panelBase.PanelName = panelName;
        panelObj.name       = panelName;
        panelDic.Add(panelName, panelBase);
        panelObj.gameObject.SetActive(false);
    }