Hey every body.
I’m making a Node grid and i want to add in each Node his neighbors in a List.
I’m using for loops to get every Nodes but Unity Displays “Object reference not set to an object”.
So i tried to debug but nothing apprears.
This is my code
for (int x = 0; x < bTm.mapSize.x; x++)
for (int z = 0; z < bTm.mapSize.y; z++)
{
bTm.nodeGrid[x, z] = new Node();
bTm.nodeGrid[x, z].x = x;
bTm.nodeGrid[x, z].z = z;
if (bTm.tiles[x, z] == 0)
{
bTm.nodeGrid[x, z].isAir = true;
}
}
for (int x = 0; x < bTm.mapSize.x; x++)
for (int z = 0; z < bTm.mapSize.y; z++)
{
Node n = bTm.nodeGrid[x, z];
List<Node> nList = new List<Node>();
if (n.isAir == false)
{
if (x < bTm.mapSize.x - 1)
if (bTm.nodeGrid[x + 1, z].isAir == false)
nList.Add(bTm.nodeGrid[x + 1, z]);
if (x > 0)
if (bTm.nodeGrid[x - 1, z].isAir == false)
nList.Add(bTm.nodeGrid[x - 1, z]);
if (z < bTm.mapSize.y - 1)
if (bTm.nodeGrid[x, z + 1].isAir == false)
nList.Add(bTm.nodeGrid[x, z + 1]);
if (z > 0)
if (bTm.nodeGrid[x, z - 1].isAir == false)
nList.Add(bTm.nodeGrid[x, z - 1]);
}
foreach(Node _n in nList)
{
if (_n != null)
if (bTm.nodeGrid != null)
bTm.nodeGrid[x, z].edges.Add(_n);
else
Debug.Log("Node grid is null.");
else
Debug.Log("_n is null");
}
}
mapSize.x = 20
mapSize.y = 20
EDIT :
The issue happen for the x + 1 and z + 1 ones.
Thanks for your help, xyHeat