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; } } }
public void RegPanel(MainPanelUICfg mpCfg, string panelName) { if (!mPrefabMap.ContainsKey(panelName)) { mPrefabMap.Add(panelName, mpCfg); } }
////////////////////////////////////单件处理//////////////////////////////////////////////// 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(); }
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); }