Как сделать так, чтобы треугольник всегда находился в первых трех вершинах сетки внизу слева, а также в одинаковом положC#

Место общения программистов C#
Anonymous
Как сделать так, чтобы треугольник всегда находился в первых трех вершинах сетки внизу слева, а также в одинаковом полож

Сообщение Anonymous »

Я хочу, чтобы при изменении динамического размера сетки треугольник всегда располагался в левом нижнем углу в первых трех вершинах. как в режиме сцены, так и в режиме игры.
Изображение

Я пытался добавить метод InitMesh в свой код, но он особо не изменился. треугольник все еще находится в том же статическом положении.
полный код:
using UnityEngine;

[ExecuteAlways]
[RequireComponent(typeof(MeshFilter), typeof(MeshRenderer))]
public class GridGenerate : MonoBehaviour
{
[Min(1)] public int xSize = 1, ySize = 1;
private Mesh mesh;
private Vector3[] vertices;

private void Awake()
{
InitMesh();
GenerateGrid();
}

private void OnValidate()
{
InitMesh();
GenerateGrid();
}

private void Update()
{
if (mesh == null || mesh.vertexCount != (xSize + 1) * (ySize + 1))
{
InitMesh();
GenerateGrid();
}
}

private void InitMesh()
{
if (mesh == null)
{
mesh = new Mesh();
GetComponent().mesh = mesh;
}
else
{
mesh.Clear();
}
}

private void GenerateGrid()
{
mesh.name = "Procedural Grid with Triangle";
mesh.vertices = CreateVertices(); // Set vertices first
mesh.triangles = CreateTriangles(); // Assign triangles after vertices
mesh.RecalculateNormals(); // Recalculate normals for proper lighting
}

private Vector3[] CreateVertices()
{
vertices = new Vector3[(xSize + 1) * (ySize + 1)];
int index = 0;
// Create vertices for the grid
for (int y = 0; y

Подробнее здесь: https://stackoverflow.com/questions/791 ... ertices-an

Вернуться в «C#»