private void findNeighbors() { for (int y = 0; y < height; y++) { int maxWidth = width - (y % 2); int maxWidthAdj = width - ((y + 1) % 2); for (int x = 0; x < maxWidth; x++) { HexTile tile = GetTile(x, y); if (tile.isOccluded || tile.type == HexTileType.Disabled) { continue; } if (x > 0) { tile.AddPath(GetTile(x - 1, y)); } if (x < maxWidth - 1) { tile.AddPath(GetTile(x + 1, y)); } if (y > 0 && x < maxWidthAdj) { tile.AddPath(GetTile(x, y - 1)); } if (y < height - 1 && x < maxWidthAdj) { tile.AddPath(GetTile(x, y + 1)); } if (y % 2 == 0) { if (y > 0 && x > 0) { tile.AddPath(GetTile(x - 1, y - 1)); } if (y < height - 1 && x > 0) { tile.AddPath(GetTile(x - 1, y + 1)); } } else { if (y > 0 && x < maxWidthAdj - 1) { tile.AddPath(GetTile(x + 1, y - 1)); } if (y < height - 1 && x < maxWidthAdj - 1) { tile.AddPath(GetTile(x + 1, y + 1)); } } } } }