Exemple #1
0
 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);
     }
 }
Exemple #2
0
 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);
     }
 }
Exemple #3
0
        /// <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);
                }
            }
                                                                   ));
        }
Exemple #4
0
        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);
            }
        }
Exemple #5
0
 //添加到场景
 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);
     }
 }
Exemple #6
0
 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();
         }
     }
 }
Exemple #7
0
 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();
         }
     }
 }
Exemple #8
0
        /// <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);
        }
Exemple #9
0
 public void UF_AddObject(IEntityHnadle obj, string alias)
 {
     this.UF_AddInternal(obj as MonoBehaviour, alias);
 }
Exemple #10
0
 public void UF_AddObject(IEntityHnadle obj)
 {
     this.UF_AddInternal(obj as MonoBehaviour, obj.name);
 }