最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Unity通過腳本創(chuàng)建網(wǎng)格Mesh的方法

 更新時(shí)間:2022年04月08日 14:17:36   作者:AlphaIcarus  
Unity中的網(wǎng)格作為組件不能脫離物體單獨(dú)存在,通過新建腳本來實(shí)現(xiàn)相關(guān)操作,本文重點(diǎn)給大家介紹Unity通過腳本創(chuàng)建網(wǎng)格Mesh的方法,感興趣的朋友一起看看吧

1.創(chuàng)建一個(gè)帶Mesh的物體

Unity中的網(wǎng)格作為組件不能脫離物體單獨(dú)存在
新建腳本CreateMesh

public class CreateMesh: MonoBehaviour
{
    void Start()
    {
	    			//該方法會(huì)新建一個(gè)名為Mesh的GameObject,該物體上包含一個(gè) MeshFilter 和一個(gè) MeshRenderer
        GameObject gameObject = new GameObject("Mesh", typeof(MeshFilter), typeof(MeshRenderer));
        gameObject.transform.localScale = new Vector3(30, 30, 1);//放大一點(diǎn),避免到時(shí)候看不見
    }
}

然后將腳本搭載到場(chǎng)景中任意物體上
點(diǎn)擊運(yùn)行后場(chǎng)景出現(xiàn)名為Mesh的物體,包含MeshFilter MeshRenderer,也可自行添加組件

這里Mesh Filter中的Mesh為None
因?yàn)槲覀冞€沒有創(chuàng)建Mesh

2.通過腳本創(chuàng)建Mesh

Unity中Mesh由頂點(diǎn)、三角面和UV坐標(biāo)組成
如果我們創(chuàng)建一個(gè)正方形,需要先聲明相應(yīng)數(shù)組
修改Create Mesh

//public class CreateMesh: MonoBehaviour
//{
   // void Start()
    //{
        Vector3[] vertices = new Vector3[0];	//聲明頂點(diǎn)數(shù)組
        Vector2[] uv = new Vector2[0];		    //聲明uv向量
        int[] triangles = new int[0];		    //聲明三角形數(shù)組
        Mesh mesh = new Mesh();				   //聲明網(wǎng)格
	    //對(duì)網(wǎng)格進(jìn)行賦值引用
        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 設(shè)為新建的 網(wǎng)格(Mesh)
        gameObject.GetComponent<MeshFilter>().mesh = mesh;
    //}
//}

這時(shí)運(yùn)行后Mesh Filter 中 Mesh 不再是null,而是我們剛剛聲明的 網(wǎng)格,只是這個(gè)網(wǎng)格還沒有相應(yīng)的數(shù)據(jù)

繼續(xù)修改CreateMesh

//public class GameHandler5 : MonoBehaviour
//{
    //這里聲明了一個(gè)材質(zhì),給它賦值一個(gè)帶貼圖的材質(zhì),不用材質(zhì)也行
    public Material material;
    //void Start()
    //{
	//這里我們創(chuàng)建一個(gè)正方形網(wǎng)格,所以需要4個(gè)頂點(diǎn)、4個(gè)UV點(diǎn)和6條邊
        Vector3[] vertices = new Vector3[4];	
        Vector2[] uv = new Vector2[4];
        int[] triangles = new int[6];
	//聲明頂點(diǎn)的位置
        vertices[0] = new Vector3(0, 1);
        vertices[1] = new Vector3(1, 1);
        vertices[2] = new Vector3(0, 0);
        vertices[3] = new Vector3(1, 0);
	//聲明UV的位置
        uv[0] = new Vector2(0, 1);
        uv[1] = new Vector2(1, 1);
        uv[2] = new Vector2(0, 0);
        uv[3] = new Vector2(1, 0);
	//聲明三角邊,這里三角邊是根據(jù)上面的頂點(diǎn)來進(jìn)行連接的,每三個(gè)頂點(diǎn)構(gòu)成一個(gè)三角邊
        //這里后面的int類型參數(shù)對(duì)應(yīng) vertices[]數(shù)組中的頂點(diǎn)
        triangles[0] = 0;
        triangles[1] = 1;
        triangles[2] = 2;
        triangles[3] = 2;
        triangles[4] = 1;
        triangles[5] = 3;
        //Mesh mesh = new Mesh();
	//將設(shè)置好的參數(shù)進(jìn)行賦值
        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);
        //gameObject.GetComponent<MeshFilter>().mesh = mesh;
        gameObject.GetComponent<MeshRenderer>().material = material;
    }
}

這個(gè)正方形存在 4個(gè)頂點(diǎn)、分為兩個(gè)三角形共 6 條邊、和 4 頂點(diǎn) UV
運(yùn)行結(jié)果

 

圖片很暗是因?yàn)閳?chǎng)景中沒有光照

到此這篇關(guān)于Unity通過腳本創(chuàng)建Mesh(網(wǎng)格)的文章就介紹到這了,更多相關(guān)Unity創(chuàng)建Mesh內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

洪江市| 宁化县| 旌德县| 塘沽区| 绿春县| 哈密市| 开江县| 孟州市| 孟州市| 九江县| 敦煌市| 屏山县| 株洲市| 屏山县| 彭水| 宣化县| 盐城市| 哈尔滨市| 宣城市| 深泽县| 昌平区| 沂源县| 抚顺市| 白朗县| 尚义县| 金堂县| 阿鲁科尔沁旗| 左权县| 湖北省| 绍兴市| 明水县| 那坡县| 玉龙| 义马市| 绥江县| 望都县| 定州市| 建昌县| 北川| 罗平县| 苍南县|