private HexGroup FindClosestThreeHex(List <Hex> hexagons) { HexGroup hexGroup = new HexGroup { MainHex = selectedHex }; foreach (var item in hexagons) { item.distance = Vector3.Distance(UICamera.lastWorldPosition, item.transform.position); } hexagons.Sort((x, y) => x.distance.CompareTo(y.distance)); // Check if neighbors have foreach (var item in hexagons) { if (hexGroup.FirstNeighbor == null) { hexGroup.FirstNeighbor = item; item.Nominate(); } else { if (Mathf.Abs(hexGroup.FirstNeighbor.x - item.x) > 1 || Mathf.Abs(hexGroup.FirstNeighbor.y - item.y) > 1) { continue; } hexGroup.SecondNeighbor = item; item.Nominate(); break; } } RepositionGroupItem(hexGroup); return(hexGroup); }
private void RepositionGroupItem(HexGroup hexGroup) { Vector3 pos = hexGroup.MedianPos(); groupItem.transform.position = pos; //if (hexGroup.FirstNeighbor.neighborNumber == ) //{ // groupItem.transform.rotation = Quaternion.Euler(0, 0, 180); // groupItem.transform.position = new Vector3(groupItem.transform.position.x + groupItemOffset, groupItem.transform.position.y, 0); //} //else //{ //} }