Ejemplo n.º 1
0
    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);
    }
Ejemplo n.º 2
0
    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
        //{

        //}
    }