public T GetInstance <T>() where T : PoolItem => Pools.Pull <T>(this);
public void PutBack() => Pools.Push(this);
protected virtual void OnDestroy() => Pools.Remove(this);