- Home /
Question by
Gusic · Jul 23, 2015 at 09:39 PM ·
javascriptspawnloop
How can i set my script on loop (JS)
Hi
I have a random spawn script that works but only spawns once, i need to keep spawning but i cant seem to figure out how.
CODE
function Update () {
//check if spawning at the moment, if not add to timer
if(!spawning){
timer += Time.deltaTime;
}
//when timer reaches 2 seconds, call Spawn function
if(timer >= 2){
Spawn();
}
}
function Spawn(){
//set spawning to true, to stop timer counting in the Update function
spawning = true;
//reset the timer to 0 so process can start over
timer = 0;
//select a random number, inside a maths function absolute command to ensure it is a whole number
var randomPick : int = Mathf.Abs(Random.Range(1,4));
//create a location 'Transform' type variable to store one of 3 possible locations declared at top of script
var location : Transform;
//check what randomPick is, and select one of the 3 locations, based on that number
if(randomPick == 1){
location = spawn1;
Debug.Log("Chose pos 1");
}
else if(randomPick == 2){
location = spawn2;
Debug.Log("Chose pos 2");
}
else if(randomPick == 3){
location = spawn3;
Debug.Log("Chose pos 3");
}
//create the object at point of the location variable
var thingToMake : Rigidbody2D = Instantiate(prefab, location.position, location.rotation);
thingToMake.AddForce(Vector3(0,0,100));
//halt script for 1 second before returning to the start of the process
yield WaitForSeconds(1);
//set spawning back to false so timer may start again
spawning = false;
}
Comment
Best Answer
Answer by RLin · Jul 23, 2015 at 09:42 PM
time.deltaTime is the time between the current frame update and the last one. This should be changed to time.Time. Note that time.Time will slow down/speed up if you change the time scale.
Your answer
![](https://koobas.hobune.stream/wayback/20220611232759im_/https://answers.unity.com/themes/thub/images/avi.jpg)