protected virtual void DestroyObject(IPoolable obj) { obj.OnReturnedToPool -= OnReturnToPoolCallback; obj.DestroyObject(); }