Пример #1
0
    /// <summary>
    /// Create the mesh for the given side of this block.
    /// </summary>
    /// <param name="side">The side for which to create the mesh.</param>
    /// <returns>The newly created Mesh for the given side.</returns>
    private Mesh CreateMesh(CubeSide side)
    {
        Mesh mesh = new Mesh {
            name      = "ScriptedMesh" + side.ToString(),
            vertices  = QuadMeshValueUtil.GetVertices(side),
            normals   = QuadMeshValueUtil.GetNormals(side),
            uv        = MeshUvCache.Instance.GetUvArray(this.blockType, side),
            triangles = QuadMeshValueUtil.Triangles,
        };

        mesh.RecalculateBounds();
        return(mesh);
    }
Пример #2
0
    /// <summary>
    /// Create the Quad for the given side of the block.
    /// </summary>
    /// <param name="side"></param>
    private void CreateQuad(CubeSide side)
    {
        Mesh mesh = new Mesh();

        mesh.name = "ScriptedMesh" + side.ToString();

        Vector2[] test;
        if (bType == BlockType.GRASS && side == CubeSide.TOP)
        {
            test = MeshUvCache.Instance.GetUvArray((int)ImageBlockIndex.GRASS_TOP);
        }
        else if (bType == BlockType.GRASS && side == CubeSide.BOTTOM)
        {
            test = MeshUvCache.Instance.GetUvArray((int)ImageBlockIndex.DIRT);
        }
        else
        {
            test = MeshUvCache.Instance.GetUvArray((int)ImageBlockIndex.GRASS_SIDE);
        }

        mesh.vertices  = QuadMeshValueUtil.GetVertices(side);
        mesh.normals   = QuadMeshValueUtil.GetNormals(side);
        mesh.uv        = test;
        mesh.triangles = QuadMeshValueUtil.Triangles;

        mesh.RecalculateBounds();

        GameObject quad = new GameObject("Quad");

        quad.transform.parent = this.gameObject.transform;
        MeshFilter meshFilter = (MeshFilter)quad.AddComponent(typeof(MeshFilter));

        meshFilter.mesh = mesh;
        MeshRenderer renderer = quad.AddComponent(typeof(MeshRenderer)) as MeshRenderer;

        renderer.material = cubeMaterial;
    }