Beispiel #1
0
        PanelInfor CreatePanelByConfg(UIPanelConfgInfor confg, bool createWhenNotExit)
        {
            if (confg == null)
            {
                Debug.LogError("SetPanelAtRightPanel Fail, Parameter is null");
                return(null);
            }
            Debug.Log("CreatePanelByConfg ....  " + confg.PanelName);

            #region Create Object BaseOn  confg

            //   GameObject uiAsset = null;
            GameObject obj = Resources.Load <GameObject>(ConstDefine.UIPanelResourcePath + confg.PanelPath);
            //   Manager.ins.ResourceMgr.LoadAsset(ConstDefine.UIPanelResourcePath + confg.PanelPath, (obj =>
            //    {
            //        uiAsset = obj as GameObject;
            //     }));
            //if (uiAsset == null)
            //{
            //    Debug.LogError("SetPanelAtRightPanel l Fail >>Panel Not Exit " + confg.PanelPath);
            //    return null;
            //}

            GameObject _panelObj = GameObject.Instantiate(obj);
            _panelObj.name = confg.PanelName;

            #endregion

            #region GetComponent Of This Obj ,Make Sure Inherit From ViewBaseFU_EX,Then Set Local psotion And Rotation
            Transform root = m_AllUIRootBaseOnLevelDic[confg.m_UIPanelLevel];
            if (root == null)
            {
                Debug.LogError("SetPanelAtRightPanel Fail,Root is Null");
                return(null);
            }
            if (confg.m_UIPanelLevel != UIPanelLevel.FixedDirectionUI || confg.IsParentRoot)
            {
                _panelObj.transform.SetParent(root);
                ///,Log4Helper.Info(">>>>>>> Set to Root");
            } //主UI 和 根节点UI设置
            else
            {
                PanelInfor _infor = LoadUIPanelByName("UIMainCanvasView", true);
                if (_infor == null)
                {
                    Debug.LogError("CreatePanelByConfg Fail....  UIMainCanvasView Not Exit");
                    _panelObj.transform.SetParent(root);
                }
                else
                {
                    _panelObj.transform.SetParent(_infor.m_Panel.transform);
                    _panelObj.transform.localScale = Vector3.one; //主要的UI

                    if (_panelObj.name != "UIMainView")
                    {
                        _panelObj.transform.SetAsFirstSibling();
                    }

                    Debug.Log(" CreatePanelByConfg. MainMenu.." + _panelObj.gameObject.name);
                }
            } //根据UI类型设置不同的父节点


            ViewBaseFU_EX _view = _panelObj.transform.GetComponent <ViewBaseFU_EX>();
            if (_view == null)
            {
                Debug.LogError("CreatePanelByConfg Fail..Miss ViewBaseFU_EX :" + _panelObj.name);
                return(null);
            }
            //Set Panel At Confg Position And Rotation
            _panelObj.transform.localPosition    = _view.m_InitialPosition;
            _panelObj.transform.localEulerAngles = _view.m_InitialAngle;

            #endregion

            #region Check And Record This Panel At m_AllInitialedPanel

            Type       type  = _view.GetType();
            PanelInfor infor = new PanelInfor(_panelObj, _view);
            if (m_AllInitialedPanel.ContainsKey(type) == false)
            {
                m_AllInitialedPanel.Add(type, infor);  //Record
            }
            else if (m_AllInitialedPanel[type] == null || m_AllInitialedPanel[type].m_Panel == null)
            {
                Debug.Log("CreatePanelByConfg , Object Destroyed ,Record Now " + confg.PanelName);
                m_AllInitialedPanel.Remove(type);
                m_AllInitialedPanel.Add(type, infor);  //Record
            }
            else
            {
                m_AllInitialedPanel[type] = infor;  //Record
            }

            #endregion

            _panelObj.gameObject.SetActive(false);
            return(infor);
        }
Beispiel #2
0
 public ViewBaseFU_EX m_ViewControlScript;  //控制脚本
 public PanelInfor(GameObject obj, ViewBaseFU_EX viewScript)
 {
     m_Panel             = obj;
     m_ViewControlScript = viewScript;
 }