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); }
/// <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); }
/// <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); }
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)); }
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); }