/// <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--; }
public void OnDeSpawn(IReference r) { if (r == null) { return; } if (mPool.Count > mLimited) { r = null; } else { r.Reset(); mPool.Enqueue(r); } }