private void Shoot() { if (PoolSystem.TryFetchAvailable("Bullet", out Bullet bullet)) { bullet.transform.position = emissionSpot.position; bullet.Fire(emissionSpot.forward * shootForce, range); _lastTimeShot = Time.time; _bulletsInClip--; _state = WeaponState.Shooting; } else { Debug.Log("no more bullets available in pool"); } }