/// <summary> /// 是否隐藏WorldCamera /// </summary> void SetWorldCameraVisible() { for (int i = 0; i < m_IdPosList.Count; i++) { T_UIConfig config = GetConfigData(GetConfigUI(m_IdPosList[i])); if (config == null || config.UI_Type != T_UIConfig.UI_TYPE.WIN) { continue; } if (config.IsCloseWorldCamera == true) { if (SceneCameraObj == null) { SceneCameraObj = GameObject.Find("WorldCamera"); } if (null != SceneCameraObj) { SceneCameraObj.SetActive(false); } return; } } if (null != SceneCameraObj) { SceneCameraObj.SetActive(true); } }
/// <summary> /// 检查是否隐藏UI /// </summary> void CheckHidenWin() { bool isHiden = false; for (int i = m_IdPosList.Count - 1; i >= 0; i--) { int id = m_IdPosList[i]; if (m_UIList.ContainsKey(id)) { WindowBase winbs = m_UIList[id]; if (winbs == null) { continue; } T_UIConfig config = winbs.F_GetUIConfig(); if (config.UI_Type == T_UIConfig.UI_TYPE.WIN) { if (isHiden == true) { TransformUtil.ChangeLayer(winbs.transform, 0, 5); } else { TransformUtil.ChangeLayer(winbs.transform, 5, 0); } if (config.ShowMask == (int)MaskType.BlurTexture || config.ShowMask == (int)MaskType.HidenUnderUI) { isHiden = true; } } } } }
public IEnumerator ReadConfig() { string path = PathUtil.StreamingPath("Config/T_UIConfig.bytes"); WWW data = new WWW(path); yield return(data); MemoryStream stream = new MemoryStream(data.bytes); stream.Position = 0; T_UIConfig byteObj = new T_UIConfig(); byteObj.SetStream(stream); size = byteObj.ReadInt(); for (int i = 0; i < size; i++) { T_UIConfig item = new T_UIConfig(); item.Deserialization(stream); // if(!groupData.ContainsKey()){ // groupData[] = new List<T_UIConfig>(); // } // groupData[].Add(item); if (itemData.ContainsKey((short)item.E_ui)) { Loger.Error("T_UIConfig is Repeat KEY = " + (short)item.E_ui); } itemData[(short)item.E_ui] = item; } Loger.Info("T_UIConfig Config load Complete, size:" + size); }
/// <summary> ///确定全屏遮罩位置 /// </summary> void SetFullScreenPos(MaskType type, GameObject MaskObj) { if (MaskObj == null) { return; } T_UIConfig tmp = null; int id = -1; for (int i = 0; i < m_IdPosList.Count; i++) { T_UIConfig config = GetConfigData(GetConfigUI(m_IdPosList[i])); if (config == null) { continue; } if (config.ShowMask == (int)type) { if (tmp == null) { tmp = config; id = m_IdPosList[i]; } else { if (tmp.UI_Type < config.UI_Type) { tmp = config; id = m_IdPosList[i]; } else if (m_UIList.ContainsKey(id) && m_UIList[id] != null && tmp.UI_Type == config.UI_Type) { if (m_UIList[id].transform.GetSiblingIndex() < m_UIList[m_IdPosList[i]].transform.GetSiblingIndex()) { tmp = config; id = m_IdPosList[i]; } } } } } if (tmp != null && m_UIList.ContainsKey(id) && m_UIList[id] != null) { MaskObj.SetActive(true); MaskObj.transform.SetParent(m_UIList[id].transform.parent); MaskObj.transform.SetAsLastSibling(); int index = m_UIList[id].transform.GetSiblingIndex(); MaskObj.transform.SetSiblingIndex(index); Vector3 pos = m_UIList[id].transform.localPosition; pos.z = pos.z - 1; MaskObj.transform.localPosition = pos; } else { MaskObj.SetActive(false); //MaskAnim(type,MaskObj, false); } }
/// <summary> /// 初始设置 /// </summary> /// <param name="id"></param> /// <param name="ui"></param> /// <param name="type"></param> public void F_SetId(int id, T_UIConfig.E_UI ui, T_UIConfig.UI_TYPE type) { m_id = id; m_ui = ui; m_Type = type; m_config = ConfigManager.UIConfig.GetData(ui); ShowAnimation(); }
/// <summary> /// 判断UI类型 /// </summary> /// <param name="id">UI 唯一配置表ID</param> /// <returns>UI类型</returns> T_UIConfig.UI_TYPE CheckUIType(T_UIConfig.E_UI id) { T_UIConfig config = GetConfigData(id); if (config == null) { return(T_UIConfig.UI_TYPE.NONE); } return(config.UI_Type); }
void ShowAnimation() { T_UIConfig config = ConfigManager.UIConfig.GetData(m_ui); if (config.IsAnimation == 1) { this.transform.localScale = new Vector3(0.5f, 0.5f, 0.5f); transform.DOScale(Vector3.one, 0.3f).SetEase(Ease.OutBack); //LeanTween.scale(this.gameObject, Vector3.one, 0.3f).setEaseOutBack(); } }
/// <summary> /// 获取UI配置表信息 /// </summary> /// <param name="id">UI 唯一配置表ID</param> /// <returns></returns> T_UIConfig GetConfigData(T_UIConfig.E_UI id) { if (id == T_UIConfig.E_UI.NONE) { return(null); } T_UIConfig config = ConfigManager.UIConfig.GetData(id); if (config == null) { return(null); } return(config); }
void HidenAnimation() { T_UIConfig config = ConfigManager.UIConfig.GetData(m_ui); if (config.IsAnimation == 1) { if (config.IsCloseWorldCamera == true) { UIManager.F_GetInstance().ShowSceneCameraObj(); } this.transform.localScale = Vector3.one; transform.DOScale(new Vector3(0.5f, 0.5f, 0.5f), 0.3f).SetEase(Ease.InBack).OnComplete(HidenComplete); // LeanTween.scale(this.gameObject, Vector3.zero, 0.3f).setEaseInBack().setOnComplete(HidenComplete); } else { UIManager.F_GetInstance().F_CloseUI(m_id); } }
/// <summary> /// 检查是否是最上层 /// </summary> /// <param name="winbs"></param> void CheckTop(WindowBase winbs, ref WindowBase tmpTop) { T_UIConfig config = GetConfigData(winbs.F_GetEUI()); if (config == null) { return; } if (config.TopFilter == true) { return; } if (tmpTop == null) { tmpTop = winbs; } else { if ((int)winbs.F_GetUIType() >= (int)tmpTop.F_GetUIType()) { tmpTop = winbs; } } }
/// <summary> /// 显示界面; /// </summary> /// <param name="eUI">配置表ID</param> /// <param name="obj">参的参数</param> /// <param name="onComplete">完成回调函数</param> public void F_ShowUI(T_UIConfig.E_UI eUI, object obj = null, ActionOnComplete onComplete = null) { if (this.IsOpenUI != null && !this.IsOpenUI.Invoke(eUI)) { return; } T_UIConfig config = GetConfigData(eUI); if (config.ShowMask == (int)MaskType.BlurTexture) { F_BlurScreenShot(); } //使用已经打开的UI if (config.MoreOpen == false && m_EUIToIdDec.ContainsKey(eUI)) { List <int> idlist = m_EUIToIdDec[eUI]; if (idlist.Count > 0) { WindowBase wdb = m_UIList[idlist[0]]; //如果需要背景模糊,得先处理再打开界面; wdb.gameObject.SetActive(true); wdb.RegisterEvent(); wdb.F_OnData(obj); wdb.F_AddSound(); //置顶 MoveToTop(eUI); SetFullScreenMask(); TransformUtil.ChangeLayer(wdb.transform, 5, 0); //回调 if (onComplete != null) { onComplete(wdb); } //设置Clear类型 //ResMgr.GetInstance().SetClearType(wdb.gameObject, clear); } return; } if ((MaskType)config.ShowMask == MaskType.BlackMask) { setFullScreenTop(); } //初始化新的UI if (!m_EUIToIdDec.ContainsKey(eUI)) { List <int> ids = new List <int>(); m_EUIToIdDec.Add(eUI, ids); } //生成Id int id = buildId(); m_IdPosList.Add(id); UIdata data = new UIdata(); data.id = id; data.config = config; data.obj = obj; data.onComplete = onComplete; m_DataModule.Add(id, data); if (data.config.IsShowLoading) { UIManager.F_GetInstance().F_ShowUI(T_UIConfig.E_UI.TIP_SHOW_LOADING); } AssetBundleManager.GetInstance().Load(config.Prefab, EnResourceType.UI, EnLoadPrority.UI, LoadAssetComplete); }