Пример #1
0
    void CreateMesh(List <Vector2> stroke)
    {
        var go = new GameObject();

        go.name                    = "Polygon";
        go.transform.parent        = this.transform;
        go.transform.localRotation = Quaternion.Euler(Vector3.zero);

        var mesh = new Mesh();

        mesh.vertices = PurifyStroke(stroke).Select(v2 => new Vector3(v2.x, v2.y, -(polygonCount + 1) / 100.0f)).ToArray();
        var indices = new List <int>();

        Triangulate.EarCut(mesh.vertices, indices);
        mesh.SetIndices(indices.ToArray(), MeshTopology.Triangles, 0);

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

        renderer.material       = BrushMaterial;
        renderer.material.color = palette[currentBrush.PaletteIndex];
        var filter = go.AddComponent <MeshFilter>();

        filter.mesh = mesh;
        this.mesh   = mesh;

        polygonCount++;
    }
Пример #2
0
    void UpdateMesh(List <Vector2> stroke)
    {
        mesh.vertices = PurifyStroke(stroke).Select(v2 => new Vector3(v2.x, v2.y, -(polygonCount + 1) / 100.0f)).ToArray();
        var indices = new List <int>();

        Triangulate.EarCut(mesh.vertices, indices);
        mesh.SetIndices(indices.ToArray(), MeshTopology.Triangles, 0);
    }