效果图
一、动态创建mesh
首先需要创建一个Mesh,当然这不是必须的,可以使用plane,自己创建主要方便控制精度。修改顶点高度,如果顶点不够可能不够平滑,太多又浪费资源。因此最好根据实际需求大小生成。
private void CreateMesh()
{
float perxlength = mapSize.x /(meshSize.x - 1);
float perzlength = mapSize.y / (meshSize.y - 1);
int totalcount = (int)meshSize.x * (int)meshSize.y;
Vector3[] vertexs = new Vector3[totalcount];
Vector3[] normals = new Vector3[totalcount];
int[] triangles = new int[((int)meshSize.x - 1) * ((int)meshSize.y - 1) * 2 * 3];
int trianglesindex = 0;
for (int i = 0; i < meshSize.y; i++)
{
for (int j = 0; j < meshSize.x; j++)
{
float x = perxlength * j;
float z = perzlength * i;
int index = i * (int)meshSize.x + j;
vertexs[index] = new Vector3(x, 0, z);
normals[index] = transform.up;
if(j != meshSize.x - 1&& i != meshSize.y - 1)
{
triangles[trianglesindex] = j + i * (int)meshSize.x;
trianglesindex++;