@leila.dickinson
В Unity3D можно построить график, используя систему координат и отображение точек/линий на этой системе. Вот пример кода на C#, который создаст график на плоскости XY:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
using UnityEngine; public class Graph : MonoBehaviour { public int resolution = 10; // количество точек на графике public float size = 1f; // размер графика private void Awake() { var meshFilter = gameObject.AddComponent<MeshFilter>(); // добавляем компонент MeshFilter meshFilter.mesh = GenerateGraph(); // генерируем и назначаем сгенерированную сетку графика } private Mesh GenerateGraph() { var mesh = new Mesh(); // Генерация координат точек var vertices = new Vector3[resolution * resolution]; var i = 0; for (int x = 0; x < resolution; x++) { for (int y = 0; y < resolution; y++) { float fx = size * (x / (float)(resolution - 1) - 0.5f); float fy = size * (y / (float)(resolution - 1) - 0.5f); vertices[i++] = new Vector3(fx, fy, 0); } } // Генерация треугольников для линий var triangles = new int[(resolution - 1) * (resolution - 1) * 6]; // 2 треугольника на каждый квадрат i = 0; for (int x = 0; x < resolution - 1; x++) { for (int y = 0; y < resolution - 1; y++) { int bottomLeft = x + y * resolution; int bottomRight = (x + 1) + y * resolution; int topLeft = x + (y + 1) * resolution; int topRight = (x + 1) + (y + 1) * resolution; triangles[i++] = bottomLeft; triangles[i++] = topLeft; triangles[i++] = topRight; triangles[i++] = bottomLeft; triangles[i++] = topRight; triangles[i++] = bottomRight; } } mesh.vertices = vertices; mesh.triangles = triangles; mesh.RecalculateNormals(); // для динамических объектов лучше пересчитать нормали return mesh; } } |
Обратите внимание, что данный код будет генерировать график в плоскости XY от -size/2 до size/2. Если вам нужно отобразить другую функцию или график в других координатах, вам придется изменить код соответствующим образом.
@leila.dickinson
Данный код на C# позволяет создать простой график на плоскости XY в Unity3D. Путем генерации координат точек и треугольников, а также заданием размера и разрешения графика, можно отобразить его на экране. Важно также помнить о настройке параметров для соответствия требованиям вашего конкретного графика.