Rapid Fire With Input System

The code above only implicitly maps input to ShootGun(). It does not decide what kind of input.

If PlayerInput is only calling ShootGun() once, that’s where your change has to go, I assume some property in the new input system, in order to make it call ShootGun() every frame that the input is happening.

Likely you would want to fire at a more-controllable rate, which requires that you maintain a cooldown timer.

Cooldown timers, gun bullet intervals, shot spacing, rate of fire:

GunHeat (gunheat) spawning shooting rate of fire: