Unity中自动的模型是有限的,有时我们需要自建模型,比如三角面片,那么我们建好了如好在上面放材质,等等~~~
以下代码,主要实现自建面片,指定uv坐标等信息。
using UnityEngine;
using System.Collections.Generic;
using System;
/// <summary>
/// 动态建立三角面片
/// </summary>
public class BuildMesh : MonoBehaviour {
void Start ()
{
BuildFRender();
}
void BuildFRender()
{
//得到MeshFilter对象,目前是空的。
MeshFilter meshFilter = (MeshFilter)GameObject.Find("FRender").GetComponent(typeof(MeshFilter));
//得到对应的网格对象
Mesh mesh = meshFilter.mesh;
//三角形顶点的坐标数组
Vector3[] vertices = new Vector3[3];
//三角形顶点ID数组
int[] triangles = new int[3];
//三角形顶点UV坐标
Vector2[] uv = new Vector2[3];
//三角形三个定点坐标,为了显示清楚忽略Z轴
vertices[0] = new Vector3(0,0,0);
vertices[1] = new Vector3(-1,1,0);
vertices[2] = new Vector3(1,1,0);
//三角形绘制顶点的数组
triangles[0] =0;
triangles[1] =1;
triangles[2] =2;
uv[0] = new Vector2(0.5f,0.2f);
uv[1] = new Vector2(0,0.7f);
uv[2] = new Vector2(1,0.7f);
//注释1
mesh.vertices = vertices;
mesh.triangles = triangles;
mesh.uv = uv;
mesh.normals = vertices;
}
}
【注意】:uv点和三角形顶点坐标数一致