Example #1
0
        /// <summary>
        /// 获取到六边形点坐标;
        /// </summary>
        public Vector3 GetPoint(HexDiagonals diagonals)
        {
            Vector3 offset = Vector3.zero;

            switch (diagonals)
            {
            case HexDiagonals.Northeast:
                offset.x = (float)(OuterRadius / 2);
                offset.z = (float)hexagon.InnerRadius;
                break;

            case HexDiagonals.East:
                offset.x = OuterRadius;
                break;

            case HexDiagonals.Southeast:
                offset.x = (float)(OuterRadius / 2);
                offset.z = -(float)hexagon.InnerRadius;
                break;

            case HexDiagonals.Southwest:
                offset.x = -(float)(OuterRadius / 2);
                offset.z = -(float)hexagon.InnerRadius;
                break;

            case HexDiagonals.West:
                offset.x = -OuterRadius;
                break;

            case HexDiagonals.Northwest:
                offset.x = -(float)(OuterRadius / 2);
                offset.z = (float)hexagon.InnerRadius;
                break;

            case HexDiagonals.Self:
                break;
            }
            return(offset);
        }
Example #2
0
 /// <summary>
 /// 获取到对角线偏移量;
 /// </summary>
 public static CubicHexCoord GetDiagonalOffset(HexDiagonals diagonal)
 {
     return(diagonalVectors[(int)diagonal]);
 }
Example #3
0
 /// <summary>
 /// 获取到这个对角线的偏移量;
 /// </summary>
 public CubicHexCoord GetDiagonal(HexDiagonals diagonal)
 {
     return(this + GetDiagonalOffset(diagonal));
 }