Esempio n. 1
0
        public static UGuiForm GetUIForm(this UIComponent uiComponent, UIFormId uiFormId, string uiGroupName = null)
        {
            string assetName = AssetUtility.GetUIFormAsset(uiFormId);
            UIForm uiForm    = null;

            if (string.IsNullOrEmpty(uiGroupName))
            {
                uiForm = uiComponent.GetUIForm(assetName);
                if (uiForm == null)
                {
                    return(null);
                }

                return((UGuiForm)uiForm.Logic);
            }

            IUIGroup uiGroup = uiComponent.GetUIGroup(uiGroupName);

            if (uiGroup == null)
            {
                return(null);
            }

            uiForm = (UIForm)uiGroup.GetUIForm(assetName);
            if (uiForm == null)
            {
                return(null);
            }

            return((UGuiForm)uiForm.Logic);
        }
Esempio n. 2
0
        /// <summary>
        /// 打开界面。
        /// </summary>
        /// <param name="uiFormAssetName">界面资源名称。</param>
        /// <param name="uiGroupName">界面组名称。</param>
        /// <param name="pauseCoveredUIForm">是否暂停被覆盖的界面。</param>
        /// <param name="userData">用户自定义数据。</param>
        /// <returns>界面的序列编号。</returns>
        public bool OpenUIForm(string uiFormAssetName, string uiGroupName, bool pauseCoveredUIForm, object userData)
        {
            if (m_ResourceManager == null)
            {
                Log.Error("You must set resource manager first.");
            }

            if (string.IsNullOrEmpty(uiFormAssetName))
            {
                Log.Error("UI form asset name is invalid.");
            }

            if (string.IsNullOrEmpty(uiGroupName))
            {
                Log.Error("UI group name is invalid.");
            }

            if (IsLoadingUIForm(uiFormAssetName))
            {
                Log.Error("UI group name is loading.");
                return(false);
            }

            if (HasUIForm(uiFormAssetName))
            {
                IUIGroup uiGroup1 = GetUIGroup(uiGroupName);
                IUIForm  form     = uiGroup1.GetUIForm(uiFormAssetName);
                if (uiGroup1.CurrentUIForm != null && uiGroup1.CurrentUIForm.SerialId != form.SerialId)
                {
                    uiGroup1.CurrentUIForm.OnClose(null);
                }
                uiGroup1.RefocusUIForm(form, userData);
                uiGroup1.Refresh();
                return(true);
            }

            UIGroup uiGroup = (UIGroup)GetUIGroup(uiGroupName);

            if (uiGroup == null)
            {
                Log.Error(string.Format("UI group '{0}' is not exist.", uiGroupName));
            }

            //资源是否缓存
            // ... ...
            UIFormInstanceObject uiFormInstanceObject = null;

            if (uiFormInstanceObject == null)
            {
                m_UIFormsBeingLoaded.Add(uiFormAssetName.GetHashCode());
                m_UIFormAssetNamesBeingLoaded.Add(uiFormAssetName);
                m_ResourceManager.LoadAsset(uiFormAssetName, m_LoadAssetCallbacks, new OpenUIFormInfo(uiFormAssetName.GetHashCode(), uiGroup, userData));
            }
            else
            {
                InternalOpenUIForm(uiFormAssetName.GetHashCode(), uiFormAssetName, uiGroup, uiFormInstanceObject.Target, false, 0f, userData);
            }

            return(true);
        }
Esempio n. 3
0
        /// <summary>
        /// 从界面组中获取界面。
        /// </summary>
        /// <param name="uiFormTypeId">界面类型编号。</param>
        /// <param name="uiGroupName">界面组名称。</param>
        /// <returns>要获取的界面。</returns>
        public IUIForm GetUIForm(int uiFormTypeId, string uiGroupName)
        {
            IUIGroup uiGroup = GetUIGroup(uiGroupName);

            if (uiGroup == null)
            {
                throw new GameFrameworkException(string.Format("UI group '{0}' is not exist.", uiGroupName));
            }

            return(uiGroup.GetUIForm(uiFormTypeId));
        }
        //获取界面
        public static UGUIForm GetUIForm(this UIComponent uiComponent, int uiFormId, string uiGroupName = null)
        {
            //获取界面配置表数据
            IDataTable <DRUIForm> dtUIForm = GameEntry.DataTable.GetDataTable <DRUIForm>();
            DRUIForm drUIForm = dtUIForm.GetDataRow(uiFormId);

            if (drUIForm == null)
            {
                return(null);
            }

            //获取界面资源路径
            string assetName = RuntimeAssetUtility.GetUIFormAsset(drUIForm.AssetName);

            UIForm uiform = null;

            //界面组名为空则直接获取界面
            if (string.IsNullOrEmpty(uiGroupName))
            {
                uiform = uiComponent.GetUIForm(assetName);
                if (uiform == null)
                {
                    return(null);
                }
            }
            else
            {
                IUIGroup group = uiComponent.GetUIGroup(uiGroupName);
                if (group == null)
                {
                    return(null);
                }

                uiform = group.GetUIForm(assetName) as UIForm;
            }

            if (uiform == null)
            {
                return(null);
            }

            return(uiform.Logic as UGUIForm);
        }
Esempio n. 5
0
        public static IUIForm GetUIForm(this IUIManager uiManager, int uiFormId, string uiGroupName = null)
        {
            Guard.Verify <LogicException>(GetUIFormInfo == null, "Must transfer the Extend() method before GetUIFormInfo() method.");

            UIFormInfo uiFormInfo = GetUIFormInfo(uiFormId);

            if (string.IsNullOrEmpty(uiGroupName))
            {
                return(uiManager.GetUIForm(uiFormInfo.AssetName));
            }

            IUIGroup uiGroup = uiManager.GetUIGroup(uiGroupName);

            if (uiGroup == null)
            {
                return(null);
            }

            return((UIForm)uiGroup.GetUIForm(uiFormInfo.AssetName));
        }
Esempio n. 6
0
    public static NGuiForm GetUIForm(this UIComponent uiComponent, int uiFormId, string uiGroupName = null)
    {
        IDataTable <DRUIForm> dtUIForm = GameManager.DataTable.GetDataTable <DRUIForm>();
        DRUIForm drUIForm = dtUIForm.GetDataRow(uiFormId);

        if (drUIForm == null)
        {
            return(null);
        }

        string assetName = AssetUtility.GetUIFormAsset(drUIForm.AssetName);
        UIForm uiForm    = null;

        if (string.IsNullOrEmpty(uiGroupName))
        {
            uiForm = uiComponent.GetUIForm(assetName);
            if (uiForm == null)
            {
                Log.Info("Null11");
                return(null);
            }

            return((NGuiForm)uiForm.Logic);
        }

        IUIGroup uiGroup = uiComponent.GetUIGroup(uiGroupName);

        if (uiGroup == null)
        {
            return(null);
        }

        uiForm = (UIForm)uiGroup.GetUIForm(assetName);
        if (uiForm == null)
        {
            return(null);
        }

        return((NGuiForm)uiForm.Logic);
    }
        public static UGuiForm GetUIForm(this UIComponent uiComponent, int uiFormId, string uiGroupName = null)
        {
            UIData uiData = GameEntry.Data.GetData <DataUI>().GetUIData(uiFormId);

            if (uiData == null)
            {
                return(null);
            }

            UIForm uiForm = null;

            if (string.IsNullOrEmpty(uiGroupName))
            {
                uiForm = uiComponent.GetUIForm(uiData.AssetPath);
                if (uiForm == null)
                {
                    return(null);
                }

                return((UGuiForm)uiForm.Logic);
            }

            IUIGroup uiGroup = uiComponent.GetUIGroup(uiGroupName);

            if (uiGroup == null)
            {
                return(null);
            }

            uiForm = (UIForm)uiGroup.GetUIForm(uiData.AssetPath);
            if (uiForm == null)
            {
                return(null);
            }

            return((UGuiForm)uiForm.Logic);
        }