private bool UF_UpdatePoolEntity(IEntityHnadle entity) { if (entity != null) { //是否需要销毁 if ((GTime.Time - entity.timeStamp) >= DisposeTime) { if (entity is IOnDestroyed) { (entity as IOnDestroyed).UF_OnDestroyed(); } AssetSystem.UF_GetInstance().UF_DestroyObject(entity as Object); return(false); } else { return(true); } } else { Debugger.UF_Error("UpdateActiveEntity: Get Null Node<IEntityHnadle> in Update,IEntityHnadle has benn Destroyed out of EntityManager"); return(false); } }
private bool UF_FixedUpdateActiveEntity(IEntityHnadle entity) { if (entity != null && !entity.Equals(null)) { //是否被标记释放 if (entity.isReleased) { UF_ReleaseEntity(entity); return(false); } else { if ((layerMaskUpdate & entity.eLayer) == 0 && entity.isActive) { if (entity is IOnSyncUpdate) { (entity as IOnSyncUpdate).UF_OnSyncUpdate(); } } return(true); } } else { Debugger.UF_Error("FixedUpdateActiveEntity: Get Null Node<IEntityHnadle> in Update,IEntityHnadle has benn Destroyed out of EntityManager"); return(false); } }
/// <summary> /// 异步创建实体 /// </summary> public int UF_AsyncCreate(string name, DelegateObject callback) { IEntityHnadle val = m_PoolEntitys.UF_Pop(name); if (val != null) { UF_ActiveEntity(val); if (callback != null) { callback(val as Object); } return(0); } //异步加载 return(AssetSystem.UF_GetInstance().UF_AsyncLoadObject(name, (param) => { if (param == null) { Debugger.UF_Error(string.Format("Create Entity[{0}] Failed,Entity Asset Not Exist!", name)); if (callback != null) { callback(null); } return; } GameObject entityGo = param as GameObject; if (entityGo == null) { Debugger.UF_Error(string.Format("Create Entity[{0}] Failed,Asset Entity Is Not GameObject Type!", name)); if (callback != null) { callback(null); } return; } IEntityHnadle entity = entityGo.GetComponent <IEntityHnadle>(); if (entity == null) { Debugger.UF_Error(string.Format("Create Entity[{0}] Failed,GameObject Count Not Find IEntityHnadle Component!", name)); if (callback != null) { callback(null); } return; } if (entity is IOnAwake) { (entity as IOnAwake).UF_OnAwake(); } UF_ActiveEntity(entity); if (callback != null) { callback(entity as Object); } } )); }
private void UF_ReleaseGameObject(GameObject go) { IEntityHnadle entity = go.GetComponent <IEntityHnadle>(); if (entity != null) { entity.isReleased = true; go.transform.SetParent(null); } else { Object.Destroy(go); } }
//添加到场景 public bool UF_AddToActivity(IEntityHnadle entity) { if (entity == null) { return(false); } if (!m_ListActive.UF_Exist(entity)) { m_ListActive.UF_Add(entity); return(true); } else { Debugger.UF_Warn(string.Format("IEntityHnadle[{0}] has already exist in Active Entitys", entity.name)); return(false); } }
private void UF_ActiveEntity(IEntityHnadle entity) { if (entity != null) { m_ListActive.UF_Add(entity); entity.isReleased = false; entity.isActive = true; entity.timeStamp = GTime.Time; if (entity is MonoBehaviour) { (entity as MonoBehaviour).transform.SetParent(null); } if (entity is IOnStart) { (entity as IOnStart).UF_OnStart(); } } }
private void UF_ReleaseEntity(IEntityHnadle entity) { if (entity != null) { m_PoolEntitys.UF_Add(entity.name, entity); entity.isReleased = true; entity.isActive = false; entity.timeStamp = GTime.Time; entity.eLayer = 0; if (entity is MonoBehaviour) { (entity as MonoBehaviour).transform.SetParent(m_RootReleasePool); } if (entity is IOnReset) { (entity as IOnReset).UF_OnReset(); } } }
/// <summary> /// 同步创建实体 /// </summary> public IEntityHnadle UF_Create(string name) { //再回收池中查找 IEntityHnadle entity = m_PoolEntitys.UF_Pop(name); if (entity != null) { UF_ActiveEntity(entity); return(entity); } //加载创建新的实例 entity = AssetSystem.UF_GetInstance().UF_LoadObjectComponent <IEntityHnadle> (name); if (entity != null) { if (entity is IOnAwake) { (entity as IOnAwake).UF_OnAwake(); } UF_ActiveEntity(entity); } return(entity); }
public void UF_AddObject(IEntityHnadle obj, string alias) { this.UF_AddInternal(obj as MonoBehaviour, alias); }
public void UF_AddObject(IEntityHnadle obj) { this.UF_AddInternal(obj as MonoBehaviour, obj.name); }