Пример #1
0
 /// <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);
     }
 }
Пример #2
0
    /// <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;
                    }
                }
            }
        }
    }
Пример #3
0
    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);
    }
Пример #4
0
    /// <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);
        }
    }
Пример #5
0
 /// <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();
 }
Пример #6
0
    /// <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);
    }
Пример #7
0
    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();
        }
    }
Пример #8
0
    /// <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);
    }
Пример #9
0
    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);
        }
    }
Пример #10
0
    /// <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;
            }
        }
    }
Пример #11
0
    /// <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);
    }