2016-08-02 8 views
0

Ich schüttele meinen Programmierrost ab und schraube herum mit Einheit, aber ich laufe während meiner Initialisierung in eine NullReferenceException.Initialisiere 2d-Array, das immer noch Nullreferenzen verursacht

ich das Snippet unten

public class Map : MonoBehaviour 
{ 
    int[,] Tile; 
    int sizeX; 
    int sizeY; 
    void Start() 
    { 

      for (int posX = 0; posX != sizeX; posX++) 
      { 
       for (int posY = 0; posY != sizeY; posY++) 
       { 
        Tile[posX, posY] = new int() 0; 

       } 
      } 
    } 
} 

die Linie

ein 2D-Array von ganzen Zahlen in einer Klasse sehen haben
Tile[posX,posY] = new int() 0; 

werfen Nullverweis hält, ich habe versucht, es eine Reihe von Möglichkeiten zu initialisieren und habe meine Struktur so geändert, dass ich Int-Container anstelle von Spielobjekten benutze, wie ich es beabsichtigt hatte, aber ich lief immer noch auf diesen Fehler.

Alle meine Forschung sagt mir, ich muss initialisieren, aber in meinen Gedanken bin ich! Wo bin ich falsch gelaufen? Entschuldigen Sie sich im Voraus, wenn ich bei meinen Suchanfragen etwas verpasst habe oder jemand Zeit verschwendet, indem ich diese Frage stelle.

Danke

+1

Sie nicht Tile initialisiert wurde: 'int [,] Tile = new int [sizeX, sizeY];' Wenn Sie das tun, Es enthält alle Nullen, also ist die Schleife nicht notwendig. Auch "new int() 0;" ist kein gültiger Code –

+0

Ich möchte Ihnen dafür danken, dass Sie so schnell reagiert haben. Ich habe das Gefühl, dass ich diese Sache letzte Nacht vergeblich versucht habe! Aber ich versuche es heute und genau das, was du gesagt hast, hat funktioniert. Vielen Dank. – DevSol

Antwort

1

Nun, diese Fehlermeldung angezeigt, weil Ihr Array nicht initialisiert wird.

Sie sind so etwas wie Tile = new int[sizeX, sizeY];

Außerdem fehlt, Tile[x,y] = some int verwenden Sie die Arrays Felder werden initialisiert.

(Btw ist new int() 0 einige Phantasie Syntax ich nicht heared haben?)