Example #1
0
 /// <summary>
 /// 回收引用
 /// </summary>
 public void Despawn(IReference refe)
 {
     if (_referenceQueue.Count >= _limit)
     {
         refe = null;
     }
     else
     {
         refe.Reset();
         _referenceQueue.Enqueue(refe);
     }
 }
        public void Release(IReference reference)
        {
            reference.Reset();
            lock (references)
            {
                if (references.Contains(reference))
                {
                    Debuger.LogError("The reference has been released.");
                }
                references.Enqueue(reference);
            }

            releaseReferenceCount++;
            usingReferenceCount--;
        }
Example #3
0
 public void OnDeSpawn(IReference r)
 {
     if (r == null)
     {
         return;
     }
     if (mPool.Count > mLimited)
     {
         r = null;
     }
     else
     {
         r.Reset();
         mPool.Enqueue(r);
     }
 }