- Home /
Multiple spawn points using Array...
I'm trying to make a spawn script that would randomly choose one of three spawn points which are located at three game objects. This is the first set of code I tried.
 var spawn : Transform[]; 
 var game_cube : Rigidbody;
 var cube_count = 0;
 
 InvokeRepeating("LaunchProjectile", 2, 3);
 function Update() {
     if (cube_count>= 10) {
        CancelInvoke();
     }
 
 }
 
 function LaunchProjectile () {
     var randomPick : int = Random.Range(0,2);
 
     instance = Instantiate(game_cube, spawn[randomPick].position, transform.rotation);
     instance.velocity = Vector3.zero;
     cube_count = cube_count +1;
 
 }
It has no errors but the prefab objects I made are not spawning at all. So I tried making a basic script that could make it at least functional.
 var game_cube : Rigidbody;
 var spawn : Transform[];
 var cube_count = 0;
 var respawn1 : GameObject;
 var respawn2 : GameObject;
 var respawn3 : GameObject;
 
 InvokeRepeating("LaunchProjectile", 2, 3);
 function Update() {
     if (cube_count>= 10) {
         CancelInvoke();
     }
 
 }
 
 function LaunchProjectile () {
     var randomPick : int = Random.Range(0,2);
         if(randomPick : 0){
             spawn : respawn1;
         }
         if(randomPick : 1){
             spawn : respawn2;
         }
         if(randomPick : 2){
             spawn : respawn3;
         }
         
     instance = Instantiate(game_cube, spawn.position, spawn.rotation);
     instance.velocity = Vector3.zero;
     cube_count = cube_count +1;
 
 }
I assume you assigned 3 transforms to 'spawn' with the Inspector, as well as game_cube?
Answer by vxssmatty · Oct 03, 2011 at 10:31 PM
You were on the right track, but you havnt started the invoke command at all, it has to be in start or an awake function;
And then you would notice that your instance was not a variable, you have to assign it like you did with the random value variable.
And you can just do cube_count++; to increment the variable by 1 :)
 var spawn : Transform[]; //array of spawn points
 var game_cube : Rigidbody; //the game cube
 var cube_count = 0; //cube counter
 
 function Start () { //runs once at instantiation
 InvokeRepeating("LaunchProjectile", 2, 3);
 }
 
 function Update() {
     if (cube_count>= 10) {
        CancelInvoke();
     }
 
 }
 
 function LaunchProjectile () {
     var randomPick : int = Random.Range(0,2);
 
     var instance = Instantiate(game_cube, spawn[randomPick].position, transform.rotation);
     instance.velocity = Vector3.zero;
     cube_count++;
 
 }
How would you go about changing this code to make it so that a given spawn point can only have one Game Object spawn in it?
EDIT: Also, spawn[randomPick] throws up the error stating that 'spawn' is undefined.
Your answer
 
 
             Follow this Question
Related Questions
Spawning GameObjects with help of classes --- Attaching classes to GameObjects 1 Answer
Random textures... 1 Answer
Making an Array of Spawnpoints... 1 Answer
Array problem? help please! 1 Answer
Unity Engine issue... 1 Answer
 koobas.hobune.stream
koobas.hobune.stream 
                       
                
                       
			     
			 
                