Ejemplo n.º 1
0
 private void _OnCacheFull()
 {
     if (m_deSpawnCount > ResourceConfig.MAX_POOL_COUNT)
     {
         ResourcePool first = _GetCacheFirst();
         if (first != null)
         {
             m_deSpawnCount -= first.GetObjectCount();
             first.Clear(false);
             _RemoveCacheValue(first.Id);
         }
     }
 }
Ejemplo n.º 2
0
        private ResourcePool _AddResourcePool(ResourcePool resourcePool)
        {
            ResourcePool existedPool = null;

            if (m_pathHash2Pool.TryGetValue(resourcePool.Id, out existedPool))
            {
                m_deSpawnCount += resourcePool.GetObjectCount();
                existedPool.Merge(resourcePool);
                return(existedPool);
            }

            m_pathHash2Pool.Add(resourcePool.Id, resourcePool);

            return(resourcePool);
        }
Ejemplo n.º 3
0
        private void _ClearResourcePool(ulong pathHash)
        {
            ResourcePool resourcePool = null;

            if (!m_pathHash2Pool.TryGetValue(pathHash, out resourcePool))
            {
                return;
            }

            m_pathHash2Pool.Remove(pathHash);
            if (resourcePool != null)
            {
                int count = resourcePool.GetObjectCount();
                if (count > 0)
                {
                    m_deSpawnCount -= count;
                    _RemoveCacheValue(resourcePool.Id);
                }
                resourcePool.Clear(true);
            }
        }