既然已经完成了一个三角形的那么我们参照之前的,再写一个三角形,并把这个面片拼凑成一个四边形,那么直接参照之前的代码就好了,还有为了方便看出来,稍微的调整第二个三角形的位置. `using System.Collections; using System.Collections.Generic; using UnityEngine;
//脚本对于组件的依赖 [RequireComponent(typeof(MeshFilter),typeof(MeshRenderer))]
public class SimpleProceduralMesh : MonoBehaviour { private void OnEnable() {
Mesh mesh = new Mesh()
{
name = "Procedural Mesh"
};
//3个顶点
mesh.vertices = new Vector3[] {
Vector3.zero ,
Vector3 .right ,
Vector3 .up ,
new Vector3 (1.1f,0),
new Vector3 (1.1f,1.1f),
new Vector3 (0,1.1f)
};
//顶点的渲染顺序
mesh.triangles = new int[] {
0,2,1,
5,4,3
};
//模型发现朝向
mesh.normals = new Vector3[] {
Vector3 .back,
Vector3 .back,
Vector3 .back,
Vector3 .back,
Vector3 .back,
Vector3 .back
};
//模型UV
mesh.uv = new Vector2[] {
Vector2 .zero,
Vector2.right,
Vector2.up ,
new Vector3 (1.1f,0),
new Vector3 (1.1f,1.1f),
new Vector3 (0,1.1f)
};
mesh.tangents = new Vector4[] {
new Vector4(1f,0f,0f,-1f),
new Vector4(1f,0f,0f,-1f),
new Vector4(1f,0f,0f,-1f),
new Vector4(1f,0f,0f,-1f),
new Vector4(1f,0f,0f,-1f),
new Vector4(1f,0f,0f,-1f)
};
GetComponent<MeshFilter>().mesh = mesh;
//Material Mat = GetComponent<MeshRenderer>().material = new Material(Shader.Find("Standard"));
//Mat.mainTexture = Resources.Load<Texture2D>("base-map");
}
} `
那么再次运行unity程序: