//using System; //using System.Collections; //using System.Collections.Generic; //using UnityEngine; //namespace ET //{ // public class PoolAwakeSystem : AwakeSystem // { // public override void Awake(Pool self) // { // self.Awake(); // } // } // public class PoolStartSystem : StartSystem // { // public override void Start(Pool self) // { // self.Start(); // } // } // // // //public class PoolUpdateSystem : UpdateSystem // //{ // // public override void Update(Pool self) // // { // // self.Update(); // // } // //} // public class PoolDestroySystem : DestroySystem // { // public override void Destroy(Pool self) // { // self.Destroy(); // } // } // public class Pool : Entity // { // //public ClassObjectPool ClassObjectPool { get; private set; } // public GameObjectPool GameObjectPool { get; private set; } // //public AssetBundlePool AssetBundlePool { get; private set; } // public int ReleaseClassObjectInterval { get; private set; } // public int ReleaseAssetBundleInterval { get; private set; } // public int ReleaseAssetInterval { get; private set; } // public float ReleaseClassObjectNextRunTime { get; private set; } // /// // /// 下次释放资源运行时间 // /// // public float ReleaseAssetBundleNextRunTime { get; private set; } // /// // /// 下次释放资源运行时间 // /// // public float ReleaseAssetNextRunTime { get; private set; } // public void Awake() // { // //GameObjectPool = EntityFactory.CreateWithParent(this); // //ClassObjectPool = EntityFactory.CreateWithParent(this); // //AssetBundlePool = EntityFactory.CreateWithParent(this, "AssetBundlePool"); // //AssetPool = new Dictionary(); // m_InstanceResourceDic = new Dictionary(); // } // public void Start() // { // ReleaseClassObjectNextRunTime = Time.time; // ReleaseAssetBundleNextRunTime = Time.time; // ReleaseAssetNextRunTime = Time.time; // InitClassReside(); // } // /// // /// 初始化常用类常驻数量 // /// // private void InitClassReside() // { // //ReferencePool.SetResideCount(3); // //ClassObjectPool.SetResideCount(10); // //ClassObjectPool.SetResideCount(10); // //ClassObjectPool.SetResideCount>(3); // //ClassObjectPool.SetResideCount(10); // //ClassObjectPool.SetResideCount(30); // } // #region ClassObjectPool // /// // /// 取出一个对象 // /// // /// // /// // //public T DequeueClassObject() where T : class, new() // //{ // // return ClassObjectPool.DequeueClassObject(); // //} // ///// // ///// 对象回池 // ///// // ///// // //public void EnqueueClassObject(object obj) // //{ // // ClassObjectPool.EnqueueClassObject(obj); // //} // #endregion // #region 实例管理和分类资源池释放 // private Dictionary m_InstanceResourceDic; // /// // /// 注册到实例字典 // /// // /// // /// // internal void RegistInstanceResource(int id, ResourceEntity resEntity) // { // m_InstanceResourceDic[id] = resEntity; // } // public void ReleaseInstanceResource(int id) // { // if (m_InstanceResourceDic.TryGetValue(id, out ResourceEntity resourceEntity)) // { // if (Define.IsEditorMode) // { // resourceEntity.Target = null; // //todo: // //Game.Scene.GetComponent().EnqueueClassObject(resourceEntity); // } // else // { // DespawnResourceEntity(resourceEntity); // } // m_InstanceResourceDic.Remove(id); // } // } // private void DespawnResourceEntity(ResourceEntity resourceEntity) // { // //var curr = resourceEntity.DependsResourceList.First; // //while (curr != null) // //{ // // DespawnResourceEntity(curr.Value); // // curr = curr.Next; // //} // //AssetPool[resourceEntity.Category]?.Despawn(resourceEntity.ResourceName); // } // #endregion // #region GameObjectPool // /// // /// 物体对象池初始化 // /// // internal void InitGameObjectPool() // { // GameObjectPool.Init(UnityRoot.Instance.GameObjectPoolGroups, UnityRoot.Instance.ObjPoolParent); // } // /// // /// 从对象池中获取对象 // /// // /// // /// // /// // //public void GameObjectSpawn(byte poolId, Transform prefab, Action onComplete) // //{ // // GameObjectPool.Spawn(poolId, prefab, onComplete); // //} // /// // /// 从对象池中获取对象 // /// // /// // /// // #endregion // public void Update() // { // //if (Time.time > ReleaseClassObjectNextRunTime + ReleaseClassObjectInterval) // //{ // // //该释放资源了 // // ReleaseClassObjectNextRunTime = Time.time; // // ReleaseClassObjectPool(); // //} // //if (Time.time > ReleaseAssetBundleNextRunTime + ReleaseAssetBundleInterval) // //{ // // //该释放资源了 // // ReleaseAssetBundleNextRunTime = Time.time; // // if (!Define.IsEditorMode) // // { // // ReleaseAssetBundlePool(); // // } // //} // //if (Time.time > ReleaseAssetNextRunTime + ReleaseAssetInterval) // //{ // // //该释放资源了 // // ReleaseAssetNextRunTime = Time.time; // // if (!Define.IsEditorMode) // // { // // ReleaseAssetPool(); // // } // // Resources.UnloadUnusedAssets(); // //} // } // /// // /// 释放类对象池 // /// // public void ReleaseClassObjectPool() // { // //ClassObjectPool.Release(); // } // /// // /// 释放AssetBundle池 // /// // public void ReleaseAssetBundlePool() // { // //AssetBundlePool.Release(); // } // /// // /// 释放分类资源池的所有资源 // /// // internal void ReleaseAssetPool() // { // } // public void Destroy() // { // //ClassObjectPool.Dispose(); // //GameObjectPool.Dispose(); // //AssetBundlePool.Dispose(); // } // } //}