Bootstrap

使用网格自建面片,指定uv坐标等

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点和三角形顶点坐标数一致

;