/// <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); }
/// <summary> /// 获取到对角线偏移量; /// </summary> public static CubicHexCoord GetDiagonalOffset(HexDiagonals diagonal) { return(diagonalVectors[(int)diagonal]); }
/// <summary> /// 获取到这个对角线的偏移量; /// </summary> public CubicHexCoord GetDiagonal(HexDiagonals diagonal) { return(this + GetDiagonalOffset(diagonal)); }