private void LoadUIFormFailureCallback(string uiFormAssetName, LoadResourceStatus status, string errorMessage, object userData) { OpenUIFormInfo openUIFormInfo = (OpenUIFormInfo)userData; if (openUIFormInfo == null) { throw new GameFrameworkException("Open UI form info is invalid."); } if (m_UIFormsToReleaseOnLoad.Contains(openUIFormInfo.SerialId)) { m_UIFormsToReleaseOnLoad.Remove(openUIFormInfo.SerialId); ReferencePool.Release(openUIFormInfo); return; } m_UIFormsBeingLoaded.Remove(openUIFormInfo.SerialId); string appendErrorMessage = Utility.Text.Format("Load UI form failure, asset name '{0}', status '{1}', error message '{2}'.", uiFormAssetName, status.ToString(), errorMessage); if (m_OpenUIFormFailureEventHandler != null) { OpenUIFormFailureEventArgs openUIFormFailureEventArgs = OpenUIFormFailureEventArgs.Create(openUIFormInfo.SerialId, uiFormAssetName, openUIFormInfo.UIGroup.Name, openUIFormInfo.PauseCoveredUIForm, appendErrorMessage, openUIFormInfo.UserData); m_OpenUIFormFailureEventHandler(this, openUIFormFailureEventArgs); ReferencePool.Release(openUIFormFailureEventArgs); ReferencePool.Release(openUIFormInfo); return; } ReferencePool.Release(openUIFormInfo); throw new GameFrameworkException(appendErrorMessage); }
private void LoadUIFormSuccessCallback(string uiFormAssetName, object uiFormAsset, float duration, object userData) { OpenUIFormInfo openUIFormInfo = (OpenUIFormInfo)userData; if (openUIFormInfo == null) { throw new GameFrameworkException("Open UI form info is invalid."); } if (m_UIFormsToReleaseOnLoad.Contains(openUIFormInfo.SerialId)) { m_UIFormsToReleaseOnLoad.Remove(openUIFormInfo.SerialId); ReferencePool.Release(openUIFormInfo); m_UIFormHelper.ReleaseUIForm(uiFormAsset, null); return; } m_UIFormsBeingLoaded.Remove(openUIFormInfo.SerialId); UIFormInstanceObject uiFormInstanceObject = UIFormInstanceObject.Create(uiFormAssetName, uiFormAsset, m_UIFormHelper.InstantiateUIForm(uiFormAsset), m_UIFormHelper); m_InstancePool.Register(uiFormInstanceObject, true); InternalOpenUIForm(openUIFormInfo.SerialId, uiFormAssetName, openUIFormInfo.UIGroup, uiFormInstanceObject.Target, openUIFormInfo.PauseCoveredUIForm, true, duration, openUIFormInfo.UserData); ReferencePool.Release(openUIFormInfo); }
private void LoadUIFormSuccessCallback(string uiFormAssetName, object uiFormAsset, float duration, object userData) { OpenUIFormInfo openUIFormInfo = (OpenUIFormInfo)userData; if (openUIFormInfo == null) { throw new System.Exception("Open UI form info is invalid."); } UIFormInstanceObject uiFormInstanceObject = new UIFormInstanceObject(uiFormAssetName, uiFormAsset, m_UIFormHelper.InstantiateUIForm(uiFormAsset), m_UIFormHelper); m_InstancePool.Register(uiFormInstanceObject, true); m_UIFormsBeingLoaded.Remove(openUIFormInfo.SerialId); m_UIFormAssetNamesBeingLoaded.Remove(uiFormAssetName); if (m_UIFormsToReleaseOnLoad.Contains(openUIFormInfo.SerialId)) { Log.Debug("Release UI form '{0}' on loading success.", openUIFormInfo.SerialId.ToString()); m_UIFormsToReleaseOnLoad.Remove(openUIFormInfo.SerialId); m_UIFormHelper.ReleaseUIForm(uiFormAsset, null); return; } InternalOpenUIForm(openUIFormInfo.SerialId, uiFormAssetName, openUIFormInfo.UIGroup, uiFormInstanceObject.Target, openUIFormInfo.PauseCoveredUIForm, true, duration, openUIFormInfo.UserData); }
public static OpenUIFormInfo Create(int serialId, UIGroup uiGroup, bool pauseCoveredUIForm, object userData) { OpenUIFormInfo openUIFormInfo = ReferencePool.Acquire <OpenUIFormInfo>(); openUIFormInfo.m_SerialId = serialId; openUIFormInfo.m_UIGroup = uiGroup; openUIFormInfo.m_PauseCoveredUIForm = pauseCoveredUIForm; openUIFormInfo.m_UserData = userData; return(openUIFormInfo); }
private void LoadAssetDependencyAssetCallback(string uiFormAssetName, string dependencyAssetName, int loadedCount, int totalCount, object userData) { OpenUIFormInfo openUIFormInfo = (OpenUIFormInfo)userData; if (openUIFormInfo == null) { throw new Exception("Open UI form info is invalid."); } Log.Info(Utility.Text.Format("{0}{1}{2}", dependencyAssetName, loadedCount, totalCount)); }
private void LoadAssetUpdateCallback(string uiFormAssetName, float progress, object userData) { OpenUIFormInfo openUIFormInfo = (OpenUIFormInfo)userData; if (openUIFormInfo == null) { throw new Exception("Open UI form info is invalid."); } Log.Info(Utility.Text.Format("{0}{1}", uiFormAssetName, progress)); }
private void InstantiateUIFormDependencyAssetCallback(string uiFormAssetName, string dependencyAssetName, int loadedCount, int totalCount, object userData) { OpenUIFormInfo openUIFormInfo = userData as OpenUIFormInfo; if (openUIFormInfo == null) { throw new GameFrameworkException("Open UI form info is invalid."); } m_OpenUIFormDependencyAssetEventHandler?.Invoke(this, new OpenUIFormDependencyAssetEventArgs(openUIFormInfo.UIFormTypeId, uiFormAssetName, openUIFormInfo.UIGroup.Name, openUIFormInfo.PauseCoveredUIForm, dependencyAssetName, loadedCount, totalCount, openUIFormInfo.UserData)); }
private void InstantiateUIFormUpdateCallback(string uiFormAssetName, float progress, object userData) { OpenUIFormInfo openUIFormInfo = userData as OpenUIFormInfo; if (openUIFormInfo == null) { throw new GameFrameworkException("Open UI form info is invalid."); } m_OpenUIFormUpdateEventHandler?.Invoke(this, new OpenUIFormUpdateEventArgs(openUIFormInfo.UIFormTypeId, uiFormAssetName, openUIFormInfo.UIGroup.Name, openUIFormInfo.PauseCoveredUIForm, progress, openUIFormInfo.UserData)); }
private void LoadUIFormDependencyAssetCallback(string uiFormAssetName, string dependencyAssetName, int loadedCount, int totalCount, object userData) { OpenUIFormInfo openUIFormInfo = (OpenUIFormInfo)userData; if (openUIFormInfo == null) { throw new GameFrameworkException("Open UI form info is invalid."); } if (m_OpenUIFormDependencyAssetEventHandler != null) { m_OpenUIFormDependencyAssetEventHandler(this, new OpenUIFormDependencyAssetEventArgs(openUIFormInfo.SerialId, uiFormAssetName, openUIFormInfo.UIGroup.Name, openUIFormInfo.PauseCoveredUIForm, dependencyAssetName, loadedCount, totalCount, openUIFormInfo.UserData)); } }
private void LoadUIFormUpdateCallback(string uiFormAssetName, float progress, object userData) { OpenUIFormInfo openUIFormInfo = (OpenUIFormInfo)userData; if (openUIFormInfo == null) { throw new GameFrameworkException("Open UI form info is invalid."); } if (m_OpenUIFormUpdateEventHandler != null) { m_OpenUIFormUpdateEventHandler(this, new OpenUIFormUpdateEventArgs(openUIFormInfo.SerialId, uiFormAssetName, openUIFormInfo.UIGroup.Name, openUIFormInfo.PauseCoveredUIForm, progress, openUIFormInfo.UserData)); } }
private void LoadUIFormUpdateCallback(string uiFormAssetName, float progress, object userData) { OpenUIFormInfo openUIFormInfo = (OpenUIFormInfo)userData; if (openUIFormInfo == null) { Log.Error("Open UI form info is invalid."); } if (m_OpenUIFormUpdateEventHandler != null) { m_OpenUIFormUpdateEventHandler(this, new OpenUIFormUpdateEventArgs(openUIFormInfo.SerialId, uiFormAssetName, openUIFormInfo.UIGroup.Name, progress, openUIFormInfo.UserData)); } }
private void InstantiateUIFormSuccessCallback(string uiFormAssetName, object uiFormInstance, float duration, object userData) { UIFormInstanceObject uiFormInstanceObject = new UIFormInstanceObject(uiFormAssetName, uiFormInstance, m_UIFormHelper); m_InstancePool.Register(uiFormInstanceObject, true); OpenUIFormInfo openUIFormInfo = userData as OpenUIFormInfo; if (openUIFormInfo == null) { throw new GameFrameworkException("Open UI form info is invalid."); } InternalOpenUIForm(openUIFormInfo.UIFormTypeId, uiFormAssetName, openUIFormInfo.UIGroup, uiFormInstanceObject.Target, openUIFormInfo.PauseCoveredUIForm, true, duration, openUIFormInfo.UserData); }
private void LoadAssetUpdateCallback(string uiFormAssetName, float progress, object userData) { OpenUIFormInfo openUIFormInfo = (OpenUIFormInfo)userData; if (openUIFormInfo == null) { throw new GXException("Open UI form info is invalid."); } if (m_OpenUIFormUpdateEventHandler != null) { OpenUIFormUpdateEventArgs openUIFormUpdateEventArgs = OpenUIFormUpdateEventArgs.Create(openUIFormInfo.SerialId, uiFormAssetName, openUIFormInfo.UIGroup.Name, openUIFormInfo.PauseCoveredUIForm, progress, openUIFormInfo.UserData); m_OpenUIFormUpdateEventHandler(this, openUIFormUpdateEventArgs); ReferencePool.Release(openUIFormUpdateEventArgs); } }
private void LoadAssetDependencyAssetCallback(string uiFormAssetName, string dependencyAssetName, int loadedCount, int totalCount, object userData) { OpenUIFormInfo openUIFormInfo = (OpenUIFormInfo)userData; if (openUIFormInfo == null) { throw new GXException("Open UI form info is invalid."); } if (m_OpenUIFormDependencyAssetEventHandler != null) { OpenUIFormDependencyAssetEventArgs openUIFormDependencyAssetEventArgs = OpenUIFormDependencyAssetEventArgs.Create(openUIFormInfo.SerialId, uiFormAssetName, openUIFormInfo.UIGroup.Name, openUIFormInfo.PauseCoveredUIForm, dependencyAssetName, loadedCount, totalCount, openUIFormInfo.UserData); m_OpenUIFormDependencyAssetEventHandler(this, openUIFormDependencyAssetEventArgs); ReferencePool.Release(openUIFormDependencyAssetEventArgs); } }
private void InstantiateUIFormFailureCallback(string uiFormAssetName, LoadResourceStatus status, string errorMessage, object userData) { OpenUIFormInfo openUIFormInfo = userData as OpenUIFormInfo; if (openUIFormInfo == null) { throw new GameFrameworkException("Open UI form info is invalid."); } string appendErrorMessage = string.Format("Load UI form failure, asset name '{0}', status '{1}', error message '{2}'.", uiFormAssetName, status.ToString(), errorMessage); if (m_OpenUIFormFailureEventHandler != null) { m_OpenUIFormFailureEventHandler(this, new OpenUIFormFailureEventArgs(openUIFormInfo.UIFormTypeId, uiFormAssetName, openUIFormInfo.UIGroup.Name, openUIFormInfo.PauseCoveredUIForm, appendErrorMessage, openUIFormInfo.UserData)); return; } throw new GameFrameworkException(appendErrorMessage); }
private void LoadAssetFailureCallback(string uiFormAssetName, LoadResourceStatus status, string errorMessage, object userData) { OpenUIFormInfo openUIFormInfo = (OpenUIFormInfo)userData; if (openUIFormInfo == null) { throw new Exception(Utility.Text.Format("Open UI form info is invalid." + errorMessage)); } if (m_UIFormsToReleaseOnLoad.Contains(openUIFormInfo.SerialId)) { m_UIFormsToReleaseOnLoad.Remove(openUIFormInfo.SerialId); return; } m_UIFormsBeingLoaded.Remove(openUIFormInfo.SerialId); string appendErrorMessage = Utility.Text.Format("Load UI form failure, asset name '{0}', status '{1}', error message '{2}'.", uiFormAssetName, status.ToString(), errorMessage); Log.Error(appendErrorMessage); return; }
private void LoadUIFormFailureCallback(string uiFormAssetName, LoadResourceStatus status, string errorMessage, object userData) { OpenUIFormInfo openUIFormInfo = (OpenUIFormInfo)userData; if (openUIFormInfo == null) { throw new System.Exception("Open UI form info is invalid."); } m_UIFormsBeingLoaded.Remove(openUIFormInfo.SerialId); m_UIFormAssetNamesBeingLoaded.Remove(uiFormAssetName); m_UIFormsToReleaseOnLoad.Remove(openUIFormInfo.SerialId); string appendErrorMessage = string.Format("Load UI form failure, asset name '{0}', status '{1}', error message '{2}'.", uiFormAssetName, status.ToString(), errorMessage); if (m_OpenUIFormFailureEventHandler != null) { m_OpenUIFormFailureEventHandler(this, new OpenUIFormFailureEventArgs(openUIFormInfo.SerialId, uiFormAssetName, openUIFormInfo.UIGroup.Name, openUIFormInfo.PauseCoveredUIForm, appendErrorMessage, openUIFormInfo.UserData)); return; } throw new System.Exception(appendErrorMessage); }
private void LoadAssetSuccessCallback(string uiFormAssetName, object uiFormAsset, float duration, object userData) { try { OpenUIFormInfo openUIFormInfo = (OpenUIFormInfo)userData; if (openUIFormInfo == null) { throw new Exception("Open UI form info is invalid."); } m_UIFormsBeingLoaded.Remove(openUIFormInfo.SerialId); //设置界面组信息 HUIForm uIForm = m_HUIForms[openUIFormInfo.UIType]; uIForm.UILogic.UIGroup = GetUIGroupField(uIForm.UILogic.UIGroupHierarchy); //获取加载包附加列表 UIPackage uIPackage = UIPackage.GetUIPackage(uiFormAsset, uIForm.UILogic.FormClass); uIForm.UIPackageName = uIPackage.name; //界面创建初始化 uIForm.UILogic.OnInit(); //界面功能实施 uIForm.UILogic.OnImplement(); //界面打开 uIForm.UILogic.OnOpen(); ReferencePool.Release(openUIFormInfo); } catch (Exception exception) { Log.Error(Utility.Text.Format("Create UI form Error {0}", exception.ToString())); } }
public async CFTask <int> OpenUIForm <T>() { Type uiType = typeof(T); //获取界面实例 HUIForm uIForm = GetUIForm(uiType); //判断是否在缓存列表中 if (uIForm.UILogic.RUIType == RUIType.Cache) { return(RefocusUIForm(uIForm)); } //资源绝对路径, 取视图类名短路径 string assetPathName = GlobalPath.Hoftix.GetFUI_PrefabAsset(uIForm.UILogic.FormClass); if (string.IsNullOrEmpty(assetPathName)) { throw new Exception("UI form asset name is invalid."); } //添加到正在加载中 m_UIFormsBeingLoaded.Add(m_SerialNum, assetPathName); //加载资源 LoadAssetCallbacks loadAsset = await ResourceComponent.This.LoadAsset(assetPathName, AssetCategory.FGUI, m_LoadAssetCallbacks, 0, OpenUIFormInfo.Create(m_SerialNum, uiType, uIForm.UILogic.FormClass)); //加载回调 if (loadAsset.LoadAssetStatus == LoadAssetStatus.Success) { //loadAsset.InvokeCallbackSuccess(); //创建UIForm return(m_SerialNum); } else { //loadAsset.InvokeCallbackFailed(); return(-1); } }
/// <summary> /// 打开界面。 /// </summary> /// <param name="uiFormAssetName">界面资源名称。</param> /// <param name="uiGroupName">界面组名称。</param> /// <param name="priority">加载界面资源的优先级。</param> /// <param name="pauseCoveredUIForm">是否暂停被覆盖的界面。</param> /// <param name="userData">用户自定义数据。</param> /// <returns>界面的序列编号。</returns> public int OpenUIForm(string uiFormAssetName, string uiGroupName, int priority, bool pauseCoveredUIForm, object userData) { if (m_ResourceManager == null) { throw new GameFrameworkException("You must set resource manager first."); } if (m_UIFormHelper == null) { throw new GameFrameworkException("You must set UI form helper first."); } if (string.IsNullOrEmpty(uiFormAssetName)) { throw new GameFrameworkException("UI form asset name is invalid."); } if (string.IsNullOrEmpty(uiGroupName)) { throw new GameFrameworkException("UI group name is invalid."); } UIGroup uiGroup = (UIGroup)GetUIGroup(uiGroupName); if (uiGroup == null) { throw new GameFrameworkException(Utility.Text.Format("UI group '{0}' is not exist.", uiGroupName)); } int serialId = m_Serial++; UIFormInstanceObject uiFormInstanceObject = m_InstancePool.Spawn(uiFormAssetName); if (uiFormInstanceObject == null) { m_UIFormsBeingLoaded.Add(serialId, uiFormAssetName); m_ResourceManager.LoadAsset(uiFormAssetName, priority, m_LoadAssetCallbacks, OpenUIFormInfo.Create(serialId, uiGroup, pauseCoveredUIForm, userData)); } else { InternalOpenUIForm(serialId, uiFormAssetName, uiGroup, uiFormInstanceObject.Target, pauseCoveredUIForm, false, 0f, userData); } return(serialId); }