예제 #1
0
    /// <summary>
    /// Generate a Mesh for a given HexCell
    /// </summary>
    /// <param name="cell">The Cell</param>
    /// <param name="repeat">Specifies if texture is repeat or clamping, repeat when true, otherwise clamp</param>
    /// <returns>The mesh for a hex cell</returns>
    public static Mesh GenerateHexCellMesh(HexCell cell, bool repeat = true)
    {
        Mesh hexMesh = new Mesh();

        Vector2[] corners = cell.GetAllCorners();
        Vector2   center  = Map.HexCellToWorldPosition(cell);

        for (int i = 0; i < 6; i++)
        {
            corners[i] = corners[i] - center;
        }
        hexMesh.vertices  = Converter.V2ArrayToV3Array(corners);
        hexMesh.triangles = HexTriangles();

        if (repeat)
        {
            hexMesh.uv = corners;
        }
        else
        {
            hexMesh.uv = GetUvs();
        }
        return(hexMesh);
    }