Unity通过脚本创建网格Mesh的方法

Unity中的网格作为组件不能脱离物体单独存在,通过新建脚本来实现相关操作,本文重点给大家介绍Unity通过脚本创建网格Mesh的方法,感兴趣的朋友一起看看吧

1.创建一个带Mesh的物体

Unity中的网格作为组件不能脱离物体单独存在
新建脚本CreateMesh

public class CreateMesh: MonoBehaviour
{
    void Start()
    {
	    			//该方法会新建一个名为Mesh的GameObject,该物体上包含一个 MeshFilter 和一个 MeshRenderer
        GameObject gameObject = new GameObject("Mesh", typeof(MeshFilter), typeof(MeshRenderer));
        gameObject.transform.localScale = new Vector3(30, 30, 1);//放大一点,避免到时候看不见
    }
}

然后将脚本搭载到场景中任意物体上
点击运行后场景出现名为Mesh的物体,包含MeshFilter MeshRenderer,也可自行添加组件

这里Mesh Filter中的Mesh为None
因为我们还没有创建Mesh

2.通过脚本创建Mesh

Unity中Mesh由顶点、三角面和UV坐标组成
如果我们创建一个正方形,需要先声明相应数组
修改Create Mesh

//public class CreateMesh: MonoBehaviour
//{
   // void Start()
    //{
        Vector3[] vertices = new Vector3[0];	//声明顶点数组
        Vector2[] uv = new Vector2[0];		    //声明uv向量
        int[] triangles = new int[0];		    //声明三角形数组
        Mesh mesh = new Mesh();				   //声明网格
	    //对网格进行赋值引用
        mesh.vertices = vertices;
        mesh.uv = uv;
        mesh.triangles = triangles;
        //GameObject gameObject = new GameObject("Mesh", typeof(MeshFilter), typeof(MeshRenderer));
        //gameObject.transform.localScale = new Vector3(30, 30, 1);
		
	    //将新建物体的 MeshFilter 设为新建的 网格(Mesh)
        gameObject.GetComponent<MeshFilter>().mesh = mesh;
    /

本文标题为:Unity通过脚本创建网格Mesh的方法

基础教程推荐