2017-03-10 2 views
0

Ich versuche, eine Null auf ein Array anzuwenden. Die Arrays sind Punkte, an denen Spiel-Prefabs instanziiert werden. Irgendwann im Spiel können diese Spawnpunkte zerstört werden. Wenn dies geschieht, versucht der Code immer noch, auf diesen Spawnpunkt zuzugreifen, obwohl er nicht mehr existiert. Deshalb versuche ich, ihn auf Null zu setzen. Bis jetzt war ich erfolglos. Das ist das letzte, was ich im Spiel reparieren muss. Hilfe wird geschätzt.Ich versuche, eine Null auf einem Array zu deklarieren, die an einem Punkt im Spiel nicht mehr existiert

using UnityEngine; 
using System.Collections; 
using System.Collections.Generic; 
using System.Text; 

public class podControl : MonoBehaviour { 

    public Transform [] spawns; 
    public float spawnTime = 6f; 
    public float secondSpawnTime = 3f;  
    public GameObject podPrefab; 

    void Start() 
    { 
     InvokeRepeating ("landingPod", spawnTime, secondSpawnTime); 
    } 

    void landingPod() 
    { 
     int spawnIndex = Random.Range (0, spawns.Length); 

     if (spawns != null) { 
      Instantiate (podPrefab, spawns [spawnIndex].position, spawns [spawnIndex].rotation); 
     } 
    } 

} 
+0

Also, was dieser Code soll uns zu zeigen? –

+1

Könnten Sie genauer angeben, um was es sich handelt? Was meinst du damit, dass es nicht erfolgreich war, es auf null zu setzen? Wird irgendwo eine Ausnahme ausgelöst? Wenn Sie beispielsweise ein Element des Array 'spawns' auf null setzen und dann versuchen, mit 'spawns [spawnIndex] .position' darauf zuzugreifen, erhalten Sie eine Objektverweisausnahme. Ist das was passiert? – eminlala

+0

ja. Entschuldigung, ich habe vergessen zu erwähnen, was die Fehlermeldung war. es ist jetzt behoben, dass das Problem war, so danke –

Antwort

0

sollte es nicht

sein
if(spawns[spawnIndex] != null) 

Andernfalls, wenn das Array nicht null zu sehen, es ist die Überprüfung ist nicht der Eintrag

+0

richtig, das ist, was ich dachte, aber ich wusste nicht, wie man ein Array null zu deklarieren, ohne es für die ganze Sache zu tun. Der Fehler msg ist jetzt dank dir weg. Vielen Dank! –

Verwandte Themen