private List <Astar> GetNeighborTiles(Astar cur) { List <Astar> neighbors = new List <Astar>(); Astar origin = new Astar(); origin.parent = cur; origin.g = cur.g; Astar temp1 = origin.Clone(); Astar temp2 = origin.Clone(); Astar temp3 = origin.Clone(); Astar temp4 = origin.Clone(); Astar temp5 = origin.Clone(); Astar temp6 = origin.Clone(); Astar temp7 = origin.Clone(); Astar temp8 = origin.Clone(); Astar temp9 = origin.Clone(); Astar temp10 = origin.Clone(); Astar temp11 = origin.Clone(); Astar temp12 = origin.Clone(); temp1.pos = cur.pos + Vector3Int.right; neighbors.Add(temp1); temp2.pos = cur.pos + Vector3Int.left; neighbors.Add(temp2); temp3.pos = cur.pos + Vector3Int.up; neighbors.Add(temp3); temp4.pos = cur.pos + Vector3Int.down; neighbors.Add(temp4); Vector3Int temp = new Vector3Int(0, 0, 1); temp5.pos = cur.pos + Vector3Int.right + temp; neighbors.Add(temp5); temp6.pos = cur.pos + Vector3Int.left + temp; neighbors.Add(temp6); temp7.pos = cur.pos + Vector3Int.up + temp; neighbors.Add(temp7); temp8.pos = cur.pos + Vector3Int.down + temp; neighbors.Add(temp8); temp9.pos = cur.pos + Vector3Int.right - temp; neighbors.Add(temp9); temp10.pos = cur.pos + Vector3Int.left - temp; neighbors.Add(temp10); temp11.pos = cur.pos + Vector3Int.up - temp; neighbors.Add(temp11); temp12.pos = cur.pos + Vector3Int.down - temp; neighbors.Add(temp12); int rand; List <Astar> ret = new List <Astar>(); while (neighbors.Count > 0) { rand = Random.Range(0, neighbors.Count); ret.Add(neighbors[rand]); neighbors.RemoveAt(rand); } return(ret); //return neighbors; }