public void Dispose() { if (!IsDisposed) { _particleAllocator.Release(this); IsDisposed = true; StartIndex = -1; LastUsedIndex = -1; } }