这里呢,我们需要对于顶点的重用,那么对于顶点的重用,就必须要删除一些顶点,在这里有两个顶点是相同的,所以我们要删除它,与顶点对于的normal,uv等也需要修改,还好修改的不多.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
[RequireComponent(typeof(MeshFilter),typeof(MeshRenderer))]
public class SimpleProceduralMesh : MonoBehaviour
{
private void OnEnable()
{
//var mesh = new Mesh();
//mesh.name = "Procedural Mesh";
var mesh = new Mesh()
{
name = "Procedural Mesh",
};
mesh.vertices = new Vector3[] {
Vector3.zero,
Vector3.right,
Vector3.up,
new Vector3(1f,1f),
};
mesh.triangles = new int[] {
0,2,1,1,2,3
};
mesh.normals = new Vector3[] {
Vector3.back,
Vector3.back,
Vector3.back,
Vector3.back,
};
mesh.uv = new Vector2[] {
Vector2.zero,
Vector2.right,
Vector2.up,
Vector2.one
};
mesh.tangents = new Vector4[] {
new Vector4(1,0,0,-1),
new Vector4(1,0,0,-1),
new Vector4(1,0,0,-1),
new Vector4(1,0,0,-1),
};
GetComponent<MeshFilter>().mesh = mesh;
}
}
修改完毕之后,与之前的效果一样