public void BuildCube()
    {
        PyramidMaker cubeBuilder = new PyramidMaker();

        cubeBuilder.SetUpSubmeshes(6);

        MeshFilter   meshFilter   = this.GetComponent <MeshFilter>();
        MeshRenderer meshrenderer = this.GetComponent <MeshRenderer>();

        //Top Vertices
        Vector3 t0 = new Vector3(cubeSize.x, cubeSize.y, -cubeSize.z);
        Vector3 t1 = new Vector3(-cubeSize.x, cubeSize.y, -cubeSize.z);
        Vector3 t2 = new Vector3(-cubeSize.x, cubeSize.y, cubeSize.z);
        Vector3 t3 = new Vector3(cubeSize.x, cubeSize.y, cubeSize.z);

        //Bottom Vertices
        Vector3 b0 = new Vector3(cubeSize.x, -cubeSize.y, -cubeSize.z);
        Vector3 b1 = new Vector3(-cubeSize.x, -cubeSize.y, -cubeSize.z);
        Vector3 b2 = new Vector3(-cubeSize.x, -cubeSize.y, cubeSize.z);
        Vector3 b3 = new Vector3(cubeSize.x, -cubeSize.y, cubeSize.z);

        //Top
        cubeBuilder.BuildMeshTriangle(t0, t1, t2, 0);
        cubeBuilder.BuildMeshTriangle(t0, t2, t3, 0);

        //Bottom
        cubeBuilder.BuildMeshTriangle(b2, b1, b0, 1);
        cubeBuilder.BuildMeshTriangle(b3, b2, b0, 1);

        //Back
        cubeBuilder.BuildMeshTriangle(b0, t1, t0, 2);
        cubeBuilder.BuildMeshTriangle(b0, b1, t1, 2);

        //Left
        cubeBuilder.BuildMeshTriangle(b1, t2, t1, 3);
        cubeBuilder.BuildMeshTriangle(b1, b2, t2, 3);

        //Right
        cubeBuilder.BuildMeshTriangle(b2, t3, t2, 4);
        cubeBuilder.BuildMeshTriangle(b2, b3, t3, 4);

        //Front
        cubeBuilder.BuildMeshTriangle(b3, t0, t3, 5);
        cubeBuilder.BuildMeshTriangle(b3, b0, t0, 5);

        meshFilter.mesh = cubeBuilder.CreateMesh();

        cubeBuilder.AddMaterials(meshrenderer);
    }
    public void BuildCube()
    {
        PyramidMaker cubeBuilder = new PyramidMaker();

        cubeBuilder.SetUpSubmeshes(6);

        MeshFilter   meshFilter   = this.GetComponent <MeshFilter>();
        MeshRenderer meshrenderer = this.GetComponent <MeshRenderer>();

        //top vertices
        Vector3 t0 = new Vector3(cubeSize.x, cubeSize.y, -cubeSize.z);  //top left
        Vector3 t1 = new Vector3(-cubeSize.x, cubeSize.y, -cubeSize.z); //top right
        Vector3 t2 = new Vector3(-cubeSize.x, cubeSize.y, cubeSize.z);  //bottom right of top square
        Vector3 t3 = new Vector3(cubeSize.x, cubeSize.y, cubeSize.z);   //bottom left of top square

        //bottom vertices
        Vector3 b0 = new Vector3(cubeSize.x, -cubeSize.y, -cubeSize.z);  //bottom left
        Vector3 b1 = new Vector3(-cubeSize.x, -cubeSize.y, -cubeSize.z); //bottom right
        Vector3 b2 = new Vector3(-cubeSize.x, -cubeSize.y, cubeSize.z);  //bottom right of bottom square
        Vector3 b3 = new Vector3(cubeSize.x, -cubeSize.y, cubeSize.z);   //bottom left of bottom square

        //top square
        cubeBuilder.BuildMeshTriangle(t0, t1, t2, 0);
        cubeBuilder.BuildMeshTriangle(t0, t2, t3, 0);

        //bottom square
        cubeBuilder.BuildMeshTriangle(b2, b1, b0, 1);
        cubeBuilder.BuildMeshTriangle(b3, b2, b0, 1);

        //back square
        cubeBuilder.BuildMeshTriangle(b0, t1, t0, 2);
        cubeBuilder.BuildMeshTriangle(b0, b1, t1, 2);

        //left square
        cubeBuilder.BuildMeshTriangle(b1, t2, t1, 3);
        cubeBuilder.BuildMeshTriangle(b1, b2, t2, 3);

        //left square
        cubeBuilder.BuildMeshTriangle(b2, t3, t2, 4);
        cubeBuilder.BuildMeshTriangle(b2, b3, t3, 4);

        //front square
        cubeBuilder.BuildMeshTriangle(b3, t0, t3, 5);
        cubeBuilder.BuildMeshTriangle(b3, b0, t0, 5);

        meshFilter.mesh = cubeBuilder.CreateMesh();

        cubeBuilder.AddMaterials(meshrenderer);
    }