示例#1
0
    //    private List<Vector3> InnerPosList = new List<Vector3>
    //    {
    //        new Vector3(1, 1, 0),
    //        new Vector3(1, 2, 0),
    //        new Vector3(1.2f, 2, 0),
    //        new Vector3(1.2f, 1.5f, 0),
    //        new Vector3(1.8f, 1.5f, 0),
    //        new Vector3(1.8f, 2, 0),
    //        new Vector3(2, 2, 0),
    //        new Vector3(2, 1, 0),
    //    };

    public GameObject CreateMeshTest()
    {
        GameObject go     = new GameObject("Mine");
        MeshFilter filter = go.AddComponent <MeshFilter>();

        Mesh mesh = new Mesh();

        filter.sharedMesh = mesh;
        var vers = new List <Vector3>();

        vers.AddRange(SquarePosList);
        vers.AddRange(InnerPosList);
        mesh.vertices = vers.ToArray();

//        int i = 0;
//        foreach (var item in vers)
//        {
//            Debug.Log("idx:" + i + ";pos:" + item.ToString());
//            i++;
//        }
        var trains = Triangulation.GetHoleTriangleIdx(SquarePosList, InnerPosList);

//        trains.Add(6);
//        trains.Add(5);
//        trains.Add(0);

        mesh.triangles = trains.ToArray();


        mesh.RecalculateNormals();
        mesh.RecalculateBounds();

        Material material = new Material(Shader.Find("Diffuse"));

        material.SetColor("_Color", Color.red);

        MeshRenderer renderer = go.AddComponent <MeshRenderer>();

        renderer.sharedMaterial = material;
        return(go);
    }