Я хотел бы найти лучший способ (или, по крайней мере, рабочий способ) для отображения в моем пользовательском интерфейсе пользовательской 2D-фигуры с позиции всех ее точек.
Я пробовал:
- создать сетку (используя скрипт триангулятора для преобразования my (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);
Я бы хотел сохранить настройку наложения экрана.
Как лучше всего отобразить мой многоугольник в оверлейном интерфейсе?