public Texture2D texture;//图片(设为可读取) int w;//图片的宽 int h;//图片的高 void Start() { w = texture.width;//w*h不能超过65000 h = texture.height; VertexHelper vh = new VertexHelper(); vh.Clear(); for (int x = 0; x < w; x++) { for (int z = 0; z < h; z++) { Color color = texture.GetPixel(x, z);//获取图片的颜色 float y = color.grayscale * 10; vh.AddVert(new Vector3(x, y, z), Color.white, new Vector2((float)x / w, (float)z / h)); } } for (int i = 0; i < w-1; i++) { for (int j = 0; j < h-1; j++) { vh.AddTriangle(i * h + j, i * h + j + 1, (i + 1) * h + j + 1); vh.AddTriangle(i * h + j, (i + 1) * h + j + 1, (i + 1) * h + j); } } Mesh mesh = new Mesh(); vh.FillMesh(mesh); GetComponent<MeshFilter>().mesh = mesh; GetComponent<MeshRenderer>().material.mainTexture = texture; GetComponent<MeshCollider>().sharedMesh = mesh; }