亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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í)候看不見
    }
}

然后將腳本搭載到場景中任意物體上
點(diǎn)擊運(yùn)行后場景出現(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)格
	    //對網(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ù)對應(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)閳鼍爸袥]有光照

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

相關(guān)文章

  • C#實(shí)現(xiàn)在窗體上的統(tǒng)計(jì)圖效果

    C#實(shí)現(xiàn)在窗體上的統(tǒng)計(jì)圖效果

    這篇文章主要為大家詳細(xì)介紹了C#實(shí)現(xiàn)在窗體上的統(tǒng)計(jì)圖效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • C#二分查找算法實(shí)例分析

    C#二分查找算法實(shí)例分析

    這篇文章主要介紹了C#二分查找算法,實(shí)例分析了C#二分查找的相關(guān)技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-04-04
  • C#代碼實(shí)現(xiàn)撲克牌排序的幾種方式

    C#代碼實(shí)現(xiàn)撲克牌排序的幾種方式

    今天小編就為大家分享一篇關(guān)于C#代碼實(shí)現(xiàn)撲克牌排序,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2018-10-10
  • C#三種判斷數(shù)據(jù)庫中取出的字段值是否為空(NULL) 的方法

    C#三種判斷數(shù)據(jù)庫中取出的字段值是否為空(NULL) 的方法

    最近操作數(shù)據(jù)庫,需要判斷返回的字段值是否為空,在網(wǎng)上收集了3種方法供大家參考
    2013-04-04
  • C#實(shí)現(xiàn)將數(shù)組內(nèi)元素打亂順序的方法

    C#實(shí)現(xiàn)將數(shù)組內(nèi)元素打亂順序的方法

    這篇文章主要介紹了C#實(shí)現(xiàn)將數(shù)組內(nèi)元素打亂順序的方法,涉及C#數(shù)組遍歷及隨機(jī)數(shù)操作的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-08-08
  • C#使用委托的步驟淺析

    C#使用委托的步驟淺析

    這篇文章主要介紹了C#使用委托的步驟,以實(shí)例形式深入淺出的講解了C#關(guān)于委托的定義、聲明、實(shí)例化及相關(guān)的用法,具有很好的參考借鑒價(jià)值,需要的朋友可以參考下
    2014-11-11
  • C#實(shí)現(xiàn)貨幣金額數(shù)字轉(zhuǎn)大寫漢字

    C#實(shí)現(xiàn)貨幣金額數(shù)字轉(zhuǎn)大寫漢字

    這篇文章主要為大家詳細(xì)介紹了如何使用C#實(shí)現(xiàn)貨幣金額數(shù)字轉(zhuǎn)大寫漢字功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-01-01
  • C#繼承IList?接口的實(shí)現(xiàn)步驟

    C#繼承IList?接口的實(shí)現(xiàn)步驟

    C#中的IList<T>接口是.NET框架中的一種通用接口,它定義了一組在運(yùn)行時(shí)可以使用類型參數(shù)T的元素的集合,本文給大家介紹了C#繼承IList?接口的設(shè)計(jì)方法,文中通過代碼示例給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2024-02-02
  • C#自定義緩存封裝類實(shí)例

    C#自定義緩存封裝類實(shí)例

    這篇文章主要介紹了C#自定義緩存封裝類,涉及C#針對緩存的寫入、讀取及設(shè)置過期時(shí)間等常用操作,并封裝進(jìn)一個(gè)類中便于調(diào)用,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-03-03
  • 詳解Unity日志打印工具功能

    詳解Unity日志打印工具功能

    Unity是一個(gè)非?;鸬挠螒蛞?,我們再開發(fā)的時(shí)候有的時(shí)候要進(jìn)行程序的調(diào)試,下面給大家介紹下Unity日志打印工具功能,感興趣的朋友一起看看吧
    2022-01-01

最新評論