public void CreateNodeRec (QuadtreeNodeHolder holder, int depth, int x, int y) { int width = 1 << (System.Math.Min (editorHeightLog2,editorWidthLog2)-depth); int walkable; if (depth < minDepth) { walkable = -1; } else { walkable = CheckNode (x,y, width); } if (walkable == 1 || walkable == 0 || width == 1) { QuadtreeNode node = new QuadtreeNode(active); node.SetPosition ((Int3)LocalToWorldPosition(x,y,width)); node.Walkable = walkable == 1; holder.node = node; } else { //walkable = -1 //Undefined holder.c0 = new QuadtreeNodeHolder (); holder.c1 = new QuadtreeNodeHolder (); holder.c2 = new QuadtreeNodeHolder (); holder.c3 = new QuadtreeNodeHolder (); CreateNodeRec (holder.c0,depth+1,x , y ); CreateNodeRec (holder.c1,depth+1,x + width/2, y ); CreateNodeRec (holder.c2,depth+1,x + width/2, y + width/2); CreateNodeRec (holder.c3,depth+1,x , y + width/2); } }