Beispiel #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);
         }
     }
 }
Beispiel #2
0
        public void Merge(ResourcePool data)
        {
            Log.Assert(data.m_asset == this.m_asset);

            MergeRefCount(data);

            foreach (var gameObject in data.m_objectList)
            {
                m_objectList.AddLast(gameObject);
            }
            data.m_objectList.Clear();
            data.Clear(true);
        }
Beispiel #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);
            }
        }