//Neighbour control private void CheckNeighbours() { Vector3 direction = Vector3.forward * DISTANCE_BETWEEN_HEXAGONS; Collider[] colliders; if (neighbours[(int)Neighbour.TOP] == null) { colliders = Physics.OverlapSphere(transform.position + direction, 1f, hexagonLayer); for (int i = 0; i < colliders.Length; ++i) { if (colliders[i].tag == "Hexagon") { HexagonController neighbour = colliders[i].GetComponent <HexagonController>(); neighbours[(int)Neighbour.TOP] = neighbour; neighbour.SetNeighbour(this, Neighbour.BOTTOM); break; } } } direction = Quaternion.Euler(0, 60, 0) * direction; if (neighbours[(int)Neighbour.TOP_RIGHT] == null) { colliders = Physics.OverlapSphere(transform.position + direction, 1f, hexagonLayer); for (int i = 0; i < colliders.Length; ++i) { if (colliders[i].tag == "Hexagon") { HexagonController neighbour = colliders[i].GetComponent <HexagonController>(); neighbours[(int)Neighbour.TOP_RIGHT] = neighbour; neighbour.SetNeighbour(this, Neighbour.BOTTOM_LEFT); break; } } } direction = Quaternion.Euler(0, 60, 0) * direction; if (neighbours[(int)Neighbour.BOTTOM_RIGHT] == null) { colliders = Physics.OverlapSphere(transform.position + direction, 1f, hexagonLayer); for (int i = 0; i < colliders.Length; ++i) { if (colliders[i].tag == "Hexagon") { HexagonController neighbour = colliders[i].GetComponent <HexagonController>(); neighbours[(int)Neighbour.BOTTOM_RIGHT] = neighbour; neighbour.SetNeighbour(this, Neighbour.TOP_LEFT); break; } } } }