a SpawnSystem problem

Hi

I’m working on a SpawnSystem for my jet game. I have a script named levelcontroller with a variable enemys that counts the enemies. When enemys == 0 then the SpawnSystem script shouldn’t spawn enemies anymore. In the SpawnSystem script I have also a variable jet that represents the jet prefabs and a variable soldier that represents the soldiers in my game. Also I have a variable called maxenemysjet and an other variable called maxenemyssoldier they both represent the max amount of each enemytype.

I also use multiple tags per enemy. All enemys have a tag called enemy the soldier have a second tag called Tag.

This works with this script which is attached to each soldier:

var Tags : String[];
function Tag (TagX : String)
{
for(var i=0;i<Tags.Length;i++)
{
var TempBool : boolean = (TagX ==Tags[i]);
if(TempBool)
{
return true;
}
}
return false;
}

Then I just set one element in the array Tags to Tag in the inspector.
I check the tag with that:

if(enemysjets[i].transform.GetComponent(TagScript).Tag("Tag")) {}

So but the whole thing doesn’t work an I don’t know why. I really need this script.

Does anybody have a suggestion?

Here is the code:

var maxenemysjet : float = 0;
var maxenemyssoldier : float = 0;
var jet : GameObject;
var soldier : GameObject;

function Start() {
	maxenemysjet = 0;
	maxenemyssoldier = 0;
}

function Update () {
if(Time.timeScale>0) {
	if(levelcontroller.enemys>0) {
		var enemysjets : GameObject[] = GameObject.FindGameObjectsWithTag("enemy");
		var enemyssoldier : GameObject[];
		var e : int = 0;
		var r : int = 0;
		var c : GameObject[];
		for(var i : int = 0;i<enemysjets.length;i++) {
//second tag checking
			if(enemysjets[i].transform.GetComponent(TagScript).Tag("Tag")) {
				enemyssoldier[e] = enemysjets[i];
				e++;
			}else{
				c[r] = enemysjets[i];
				r++;
			}
		}
		var enemysjet : GameObject[];
		for(var t : int = 0;t<c.length;t++) {
			enemysjet[t] = c[t];
		}
		if(enemysjet.length<maxenemysjet) {
			var spawnpoints : GameObject[] = GameObject.FindGameObjectsWithTag ("spawn");
  			var spawnpoint : Transform = spawnpoints[Random.Range(0, spawnpoints.length)].transform;
  		  
  		 	Instantiate(jet, spawnpoint.transform.position, spawnpoint.transform.rotation);
   	  
		}
		if(enemyssoldier.length<maxenemyssoldier) {
			var spawnpointsfg : GameObject[] = GameObject.FindGameObjectsWithTag ("spawn");
  			var spawnpointfg : Transform = spawnpointsfg[Random.Range(0, spawnpointsfg.length)].transform;
  		  
  		 	Instantiate(soldier, spawnpointfg.transform.position, spawnpointfg.transform.rotation);
   	  
		}
		}else{
			var enemysfgcver : GameObject[] = GameObject.FindGameObjectsWithTag("enemy");
			if(enemysfgcver.length>0) {
				for(var z : int = 0;z<enemysfgcver.length;z++) {
					Destroy(enemysfgcver[z]);
				}
			}
		}
	}
}

Thanks a lot.

realm_1

I solved the problem with another spawnsystem.

http://forum.unity3d.com/threads/50605-Free-Spawn-Script-Updated