我想找到一种最好的方法(或至少是一种可行的方法)在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);
我想保留“屏幕覆盖”设置。
在重叠式用户界面中渲染多边形的最佳方法是什么?