I am trying to write a code that shows an increasing wave counter. It should increase by 1 every 60 seconds and increase the number of spawned NPCs by 5 during that same interval.
Now I have this code here:
var wave_number = 0;
var wave_text : GUIText;
var wave_amount = 10;
var background_timer = 0;
function Start () {
}
function Update () {
background_timer = Time.time % 11;
if(background_timer == 10)
{
Invoke("New_Wave", 1);
}
}
function New_Wave () {
wave_number++;
wave_amount += 5;
Debug.Log("Wave number is " + wave_number.ToString() + ". " + "There are " + wave_amount.ToString() + " enemies.");
}
which at this point is just serving as a test (hence why the interval is currently 10 instead of sixty.
However the first problem I’m seeing before I implement text is that in the debug log is that when the code runs, it runs the code for every frame that happened when the timer was equal to 10 (sometimes 55, sometimes 60+) leading to a huge wave number and enemy count of over 200.
So how would I make it so that it only does one increase during that second instead of a bunch according to the framerate?
I’ve tried it with and without invoke, and the result has been the same.