Steps to success:
learn how to use the OnCollisionEnter / OnCollisionExit suite of functions (or implement your own collision test if you prefer, such a with a distance test)
set or reset the timer however you like.
Here’s how to do timers:
Cooldown timers, gun bullet intervals, shot spacing, rate of fire:
This is commonly called a "cooldown timer." You can google for examples and tutorials, but the simplest way is this:
have a private float gunHeat; variable
In Update(), if that variable is greater than zero, subtract Time.deltaTime from it (this cools down the gunHeat)
if (gunHeat > 0)
{
gunHeat -= Time.deltaTime;
}
When you go to fire:
--- A. only fire if that gunHeat variable is zero or less.
--- B. set that variable to the time (in seconds) you want to have between shots.
if (Us…
GunHeat (gunheat) spawning shooting rate of fire:
Don’t use a Timer… that’s super overkill.
Instead, use just a float. I like to call my float “gunHeat.”
private float gunHeat;
private const float TimeBetweenShots = 0.25f; // seconds
Now… in Update():
// cool the gun
if (gunHeat > 0)
{
gunHeat -= Time.deltaTime;
}
// is the player asking to shoot?
if (PlayerAskedToShoot)
{
// can we shoot yet?
if (gunHeat <= 0)
{
// heat the gun up so we have to wait a bit before shooting again
gunHeat = TimeBetweenShots;
// DO…