private void LoadAssetFailureCallback(string entityAssetName, LoadResourceStatus status, string errorMessage, object userData) { ShowEntityInfo showEntityInfo = (ShowEntityInfo)userData; if (showEntityInfo == null) { throw new GameFrameworkException("Show entity info is invalid."); } if (m_EntitiesToReleaseOnLoad.Contains(showEntityInfo.SerialId)) { m_EntitiesToReleaseOnLoad.Remove(showEntityInfo.SerialId); return; } m_EntitiesBeingLoaded.Remove(showEntityInfo.EntityId); string appendErrorMessage = Utility.Text.Format("Load entity failure, asset name '{0}', status '{1}', error message '{2}'.", entityAssetName, status.ToString(), errorMessage); if (m_ShowEntityFailureEventHandler != null) { ShowEntityFailureEventArgs showEntityFailureEventArgs = ShowEntityFailureEventArgs.Create(showEntityInfo.EntityId, entityAssetName, showEntityInfo.EntityGroup.Name, appendErrorMessage, showEntityInfo.UserData); m_ShowEntityFailureEventHandler(this, showEntityFailureEventArgs); ReferencePool.Release(showEntityFailureEventArgs); return; } throw new GameFrameworkException(appendErrorMessage); }
private void OnShowEntityFailure(object sender, GameFramework.Entity.ShowEntityFailureEventArgs e) { Log.Warning("Show entity failure, entity id '{0}', asset name '{1}', entity group name '{2}', error message '{3}'.", e.EntityId.ToString(), e.EntityAssetName, e.EntityGroupName, e.ErrorMessage); if (m_EnableShowEntityFailureEvent) { m_EventComponent.Fire(this, new ShowEntityFailureEventArgs(e)); } }
//显示实体失败的回调 private void OnShowEntityFailure(object sender, GameFramework.Entity.ShowEntityFailureEventArgs e) { Log.Error("[EntityComponent.OnShowEntityFailure] Show entity failure, entity id '{0}', asset name '{1}', entity group name '{2}', error message '{3}'.", e.EntityId.ToString(), e.EntityAssetName, e.EntityGroupName, e.ErrorMessage); if (m_EnableShowEntityFailureEvent) { m_EventComponent.Fire(this, ReferencePool.Acquire <ShowEntityFailureEventArgs>().Fill(e)); } }
/// <summary> /// 创建显示实体失败事件。 /// </summary> /// <param name="entityId">实体编号。</param> /// <param name="entityAssetName">实体资源名称。</param> /// <param name="entityGroupName">实体组名称。</param> /// <param name="errorMessage">错误信息。</param> /// <param name="userData">用户自定义数据。</param> /// <returns>创建的显示实体失败事件。</returns> public static ShowEntityFailureEventArgs Create(int entityId, string entityAssetName, string entityGroupName, string errorMessage, object userData) { ShowEntityFailureEventArgs showEntityFailureEventArgs = ReferencePool.Acquire <ShowEntityFailureEventArgs>(); showEntityFailureEventArgs.EntityId = entityId; showEntityFailureEventArgs.EntityAssetName = entityAssetName; showEntityFailureEventArgs.EntityGroupName = entityGroupName; showEntityFailureEventArgs.ErrorMessage = errorMessage; showEntityFailureEventArgs.UserData = userData; return(showEntityFailureEventArgs); }
private void InternalShowEntity(int entityId, string entityAssetName, EntityGroup entityGroup, object entityInstance, bool isNewInstance, float duration, object userData) { try { IEntity entity = m_EntityHelper.CreateEntity(entityInstance, entityGroup, userData); if (entity == null) { throw new GameFrameworkException("Can not create entity in helper."); } EntityInfo entityInfo = EntityInfo.Create(entity); m_EntityInfos.Add(entityId, entityInfo); entityInfo.Status = EntityStatus.WillInit; entity.OnInit(entityId, entityAssetName, entityGroup, isNewInstance, userData); entityInfo.Status = EntityStatus.Inited; entityGroup.AddEntity(entity); entityInfo.Status = EntityStatus.WillShow; entity.OnShow(userData); entityInfo.Status = EntityStatus.Showed; if (m_ShowEntitySuccessEventHandler != null) { ShowEntitySuccessEventArgs showEntitySuccessEventArgs = ShowEntitySuccessEventArgs.Create(entity, duration, userData); m_ShowEntitySuccessEventHandler(this, showEntitySuccessEventArgs); ReferencePool.Release(showEntitySuccessEventArgs); } } catch (Exception exception) { if (m_ShowEntityFailureEventHandler != null) { ShowEntityFailureEventArgs showEntityFailureEventArgs = ShowEntityFailureEventArgs.Create(entityId, entityAssetName, entityGroup.Name, exception.ToString(), userData); m_ShowEntityFailureEventHandler(this, showEntityFailureEventArgs); ReferencePool.Release(showEntityFailureEventArgs); return; } throw; } }
private void OnShowEntityFailure(object sender, GameFramework.Entity.ShowEntityFailureEventArgs e) { Log.Warning("Show entity failure, entity id '{0}', asset name '{1}', entity group name '{2}', error message '{3}'.", e.EntityId, e.EntityAssetName, e.EntityGroupName, e.ErrorMessage); m_EventComponent.Fire(this, ShowEntityFailureEventArgs.Create(e)); }