Or possibly my vertices. But it won’t render anything, here’s my code:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class MeshControl : MonoBehaviour
{
[SerializeField]
private List<Vector3> grid;
private Vector3[] vertices;
private Vector3[] normals;
private Mesh mesh;
private MeshFilter mf;
void Start()
{
grid = new List<Vector3>();
BuildMesh(new Vector3(0, 0, 0), new Vector3(100, 0, 100), new Vector3(100, 0, 0));
}
void Update()
{
}
void BuildMesh(Vector3 vec1, Vector3 vec2, Vector3 vec3)
{
vertices = new Vector3[3];
normals = new Vector3[3];
mesh = new Mesh();
vertices[0] = vec1;
vertices[1] = vec2;
vertices[2] = vec3;
normals[0] = new Vector3(Mathf.Sin(GetDir(new Vector2(vec1.x - vec2.x, vec1.z - vec2.z))), Mathf.Sin(GetDir(new Vector2(vec1.x - vec2.x, vec1.y - vec2.y))), Mathf.Cos(GetDir(new Vector2(vec1.x - vec2.x, vec1.z - vec2.z))));
normals[1] = new Vector3(Mathf.Sin(GetDir(new Vector2(vec1.x - vec2.x, vec1.z - vec2.z))), Mathf.Sin(GetDir(new Vector2(vec1.x - vec2.x, vec1.y - vec2.y))), Mathf.Cos(GetDir(new Vector2(vec1.x - vec2.x, vec1.z - vec2.z))));
normals[2] = new Vector3(Mathf.Sin(GetDir(new Vector2(vec1.x - vec2.x, vec1.z - vec2.z))), Mathf.Sin(GetDir(new Vector2(vec1.x - vec2.x, vec1.y - vec2.y))), Mathf.Cos(GetDir(new Vector2(vec1.x - vec2.x, vec1.z - vec2.z))));
mesh.vertices = vertices;
mesh.normals = normals;
mf = GetComponent<MeshFilter>();
mf.mesh = mesh;
}
float GetDir(Vector2 val)
{
if (val.y < 0)
{
return (Mathf.Atan(val.x / val.y) + 180);
}
else
{
return (Mathf.Atan(val.x / val.y) + 0);
}
}
}