- Home /
 
               Question by 
               SpectreNectar · Feb 23, 2012 at 11:14 PM · 
                c#objectnullnewinstantiating  
              
 
              Instantiating an object returns null
Using the following code I've managed to receive the value of null.
 grid[n] = new Cell();
I'm quite inexperienced at both C# and Unity in general, but shouldn't this put a Cell into the grid array?
The line appears in this context:
 private void generate(int num) {
 
 // Create cells
 cells = num;
 grid = new Cell[cells];
 
 
 Cell prevCell = null;
 Cell thisCell;
 int n = 0;
 while(n < cells) {
     
     
     
     grid[n] = new Cell(); //Why is this null?
     thisCell = grid[n];
     thisCell.init();
     
     ...
     
 }
 
}
And the Cell class looks like this:
 public class Cell : Object {
 
 // Has adjacent
 private bool[] adjs;
 // Offset in grid
 private int col, row;
 // The actual object used
 private GameObject shape;
 
 public void init() {
     
     // Start off with no offset
     col = 0;
     row = 0;
     
     // And with no shape
     shape = null;
     
     // Also no adjacent cells known initially
     adjs = new bool[6];
     
     for( int i=0; i<6; i++ ) adjs[i] = false;
     
 }
 
 
 public void construct(GameObject s) {
     
     shape = s;
     float c = (row%2==0)? col*2.0f : col*2.0f+1.0f ;
     float r = row*2.0f;
     Instantiate(shape, new Vector3(c, r, 0.0f), Quaternion.identity);
     
 }
     
 
 public bool is_surrounded() {
     
     for( int i=0; i<6; i++ ) if(!adjs[i]) return false;
     return true;
     
 }
 
 public bool has_adj(Board.ADJ a) {
     return adjs[(int)a%6];
 }
 
 static public void connect_adj(Cell c1, Cell c2, Board.ADJ a) {
     c1.adjs[(int)a] = true;
     c2.adjs[((int)a+3)%6] = true;
 }
 
 static public void disconnect_adj(Cell c1, Cell c2, Board.ADJ a) {
     c1.adjs[(int)a] = false;
     c2.adjs[((int)a+3)%6] = false;
 }
 
 public int find_col(Board.ADJ a) {
     
     int c = 0;
     
     switch(a) {
         case Board.ADJ.a1:
             c = col+1;
         break;
         case Board.ADJ.a2:
             c = (row%2==0)? col+1 : col ;
         break;
         case Board.ADJ.a3:
             c = (row%2==0)? col : col-1 ;
         break;
         case Board.ADJ.a4:
             c = col-1;
         break;
         case Board.ADJ.a5:
             c = (row%2==0)? col : col-1 ;
         break;
         case Board.ADJ.a6:
             c = (row%2==0)? col+1 : col ;
         break;
     }
     
     return c;
 }
 
 public int find_row(Board.ADJ a) {
     
     int r = 0;
     
     switch(a) {
         case Board.ADJ.a1:
             r = row;
         break;
         case Board.ADJ.a2:
             r = row-1;
         break;
         case Board.ADJ.a3:
             r = row-1;
         break;
         case Board.ADJ.a4:
             r = row;
         break;
         case Board.ADJ.a5:
             r = row+1;
         break;
         case Board.ADJ.a6:
             r = row+1;
         break;
     }
     
     return r;
 }
 
 public int get_col() {
     return col;
 }
 
 public int get_row() {
     return row;
 }
 
 public void set_cell(int c, int r) {
     col = c;
     row = r;
 }
 
}
Why does this happen?
               Comment
              
 
               
              Your answer
 
 
             Follow this Question
Related Questions
Verify if a Component is null 3 Answers
Distribute terrain in zones 3 Answers
C# Null Object Reference - Driving me mad! 1 Answer
Object getting destroyed ? 1 Answer
Multiple Cars not working 1 Answer
 koobas.hobune.stream
koobas.hobune.stream 
                       
                
                       
			     
			 
                