@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. Путем генерации координат точек и треугольников, а также заданием размера и разрешения графика, можно отобразить его на экране. Важно также помнить о настройке параметров для соответствия требованиям вашего конкретного графика.