2016-06-25 6 views
-1

Derzeit habe ich Laichsystem, das einfache dann mittlere Feinde hervorbringt, aber ich bekomme Array außerhalb der Reichweite Fehler und es wird nur 4 der Feinde. Ich mag x20 leicht (oder allgemeine Zahl) x20 Medium und dann zufällig zwischen (leicht, mittel und hart Feinden.)Einheit Spawn Feinde

Dies ist mein Code

public GameObject[] enemy; 

public Transform[] spawnPoints;   

private float timer = 2; 


int index = 0 ; 

int wave = 0; 

List <GameObject> EnemiesList = new List<GameObject>(); 

private int enemyCount=20; 


void Update() 
{ 
timer -= Time.deltaTime; 

if (timer <= 0 && wave < 6) 
{ 
    timer = 3; 

    if (wave != 0 && wave % 2 == 0) 
    { 
     index ++ ; 
    } 

    EnemySpawner(); 

    wave++; 
} 

} 

void Spawn() 
{ 
    for (int i = 0; i<enemyCount;i++) 
    { 
     Invoke("EnemySpawner" , i + 2); 
    } 
} 

void EnemySpawner() 
{ 
    int spawnPointIndex = Random.Range (0, spawnPoints.Length); 

GameObject InstanceEnemies= Instantiate (enemy[index] , spawnPoints[spawnPointIndex].position , spawnPoints[spawnPointIndex].rotation) as GameObject; 

EnemiesList.Add(InstanceEnemies); 

} 

} 

Antwort

0

Die Ausnahme könnte von Feind [index], Ihre code verwendet einen Index von 0, 1, 2. Gibt es 3 GameObjects, die zu enemy [] geraten haben?

oder

Spawnpunkte [spawnPointIndex] könnte leer sein, so dass Spawnpunkte [0] zu dieser Ausnahme führen. Gibt es mindestens eine Transformation in spawnPoints []?

die Ausnahme verhindern, dass Sie so etwas tun könnte:

aus dem Index nicht die spawnPointIndex
if (index > 0 && index < enemy.Length && spawnPointIndex > 0 && spawnPointIndex < spawnPoints.Length) 
{ 
    GameObject InstanceEnemies= Instantiate (enemy[index] , spawnPoints[spawnPointIndex].position , spawnPoints[spawnPointIndex].rotation) as GameObject; 

    EnemiesList.Add(InstanceEnemies); 
} 
+0

Keine der Fehler kommt, und wie kann ich das Laich endlos machen bitte? Vielen Dank :) – John