从x,y位置统一显示2D形状的最佳方法

时间:2018-07-01 21:47:46

标签: c# visual-studio unity3d renderer

我想找到一种最好的方法(或至少是一种可行的方法)在UI中从其所有点的位置显示自定义2D形状。

我尝试过:  -使用网格渲染器和网格过滤器创建网格(使用三角剖分脚本将我的(x,y)转换为顶点+三角形。它似乎可以工作,但即使其父级是画布(屏幕覆盖)。  -创建一个Canvasrenderer并使用SetMesh在其中设置我的网格,但是似乎什么也没有显示。这是我的代码,如果这是个好方法:

GameObject shapeChild = new GameObject();
            var shapeChildMeshRenderer = shapeChild.AddComponent<CanvasRenderer>();
            shapeChildMeshRenderer.SetMaterial(material, null);


            // Use the triangulator to get indices for creating triangles
            Triangulator tr = new Triangulator(part.Points);
            int[] indices = tr.Triangulate();

            // Create the Vector3 vertices
            Vector3[] vertices = new Vector3[vertices2D.Length];
            for (int i = 0; i < vertices.Length; i++)
            {
                vertices[i] = new Vector3(vertices2D[i].x, vertices2D[i].y, 0);
            }

            // Create the mesh
            Mesh _mesh = new Mesh();
            _mesh.vertices = vertices;
            _mesh.triangles = indices;
            _mesh.RecalculateNormals();
            _mesh.RecalculateBounds();

            shapeChildMeshRenderer.SetMesh(_mesh);

            shapeChild.transform.SetParent(this.transform);

我想保留“屏幕覆盖”设置。

在重叠式用户界面中渲染多边形的最佳方法是什么?

0 个答案:

没有答案