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