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

Unity3D動(dòng)態(tài)對(duì)象優(yōu)化代碼分享

 更新時(shí)間:2015年03月11日 15:32:31   投稿:hebedich  
這篇文章主要介紹了Unity3D動(dòng)態(tài)對(duì)象優(yōu)化代碼分享的相關(guān)資料,需要的朋友可以參考下

具體解釋請(qǐng)仔細(xì)看注釋里已經(jīng)講解的很細(xì)致了,這里就不多廢話了

復(fù)制代碼 代碼如下:

using UnityEngine;
using System.Collections;
using System.Collections.Generic;
/// <summary>
/// 動(dòng)態(tài)對(duì)象優(yōu)化
/// </summary>
public class DynamicOptimization : MonoBehaviour {
    // Use this for initialization
    void Start () {
    }
    // Update is called once per frame
    void Update () {
    }
    /// <summary>
    /// 動(dòng)態(tài)對(duì)象優(yōu)化
    /// </summary>
    /// <param name="gameObject">物體</param>
    public void DynamicObjectOptimization(GameObject gameObject)
    {
        //SkinnedMeshRenderer:蒙皮網(wǎng)格渲染器---獲取所有帶有網(wǎng)格渲染器的物體(包含子物體)
        SkinnedMeshRenderer[] smr = gameObject.GetComponentsInChildren<SkinnedMeshRenderer>();
        //CombineInstance:用來(lái)描繪網(wǎng)格合并的結(jié)構(gòu),結(jié)合網(wǎng)格有利于性能最優(yōu)化
        List<CombineInstance> listCom = new List<CombineInstance>();
        //所有材質(zhì)集合
        List<Material> listMat = new List<Material>();
        //物體的基本信息集合
        List<Transform> listTrans = new List<Transform>();
        for(int i=0;i<smr.Length;i++)
        {
            //獲取材質(zhì)信息
            listMat.AddRange(smr[i].materials);
            //物體信息---bones:用于蒙皮網(wǎng)格的骨骼列表
            listTrans.AddRange(smr[i].bones);
            //獲取共享網(wǎng)格的信息
            for(int k=0;k<smr[i].sharedMesh.subMeshCount;k++)
            {
                //合并實(shí)例
                CombineInstance ci = new CombineInstance();
                //獲取網(wǎng)格信息
                ci.mesh = smr[i].sharedMesh;
                //獲取網(wǎng)格的索引信息
                ci.subMeshIndex = k;
                //添加
                listCom.Add(ci);
            }
            //刪除
            Destroy(smr[i].gameObject);
        }
        //獲取物體上的渲染器信息
        SkinnedMeshRenderer smRenderer = gameObject.GetComponent<SkinnedMeshRenderer>();
        //判斷是否包含有網(wǎng)格渲染器,如果沒(méi)有則進(jìn)行添加
        if(smRenderer==null)
        {
            smRenderer = gameObject.AddComponent<SkinnedMeshRenderer>();
        }
        //蒙皮網(wǎng)格
        smRenderer.sharedMesh = new Mesh();
        //骨骼列表
        smRenderer.bones = listTrans.ToArray();
        //材質(zhì)
        smRenderer.materials = new Material[] { listMat[0] };
        //獲取物體的信息
        smRenderer.rootBone = gameObject.transform;
        //合并網(wǎng)格(CombineMeshes)函數(shù)的第二個(gè)參數(shù)是設(shè)置是否將多個(gè)子網(wǎng)格合并成一張實(shí)際的網(wǎng)格。
        //一個(gè)實(shí)際的網(wǎng)格只能施加一個(gè)材質(zhì),所以只有被合并的所有網(wǎng)格原來(lái)使用的就是同一個(gè)材質(zhì)(即共享材質(zhì))時(shí),
        //將它們真正合并才能正確應(yīng)用材質(zhì)。否則應(yīng)該將該參數(shù)置為false,表示不實(shí)際合并這些sub mesh,
        //而是將它們作為被合并后Mesh對(duì)象的sub mesh。
        smRenderer.sharedMesh.CombineMeshes(listCom.ToArray(), true);
    }
}

以上就是本文所述的全部?jī)?nèi)容了,希望大家能夠喜歡

相關(guān)文章

  • Unity打開(kāi)淘寶app并跳轉(zhuǎn)到商品頁(yè)面功能的實(shí)現(xiàn)方法

    Unity打開(kāi)淘寶app并跳轉(zhuǎn)到商品頁(yè)面功能的實(shí)現(xiàn)方法

    這篇文章主要給大家介紹了關(guān)于如何利用Unity打開(kāi)淘寶app并跳轉(zhuǎn)到商品頁(yè)面功能的相關(guān)資料,這個(gè)功能目前在網(wǎng)上找不到相關(guān)的解決方法,所以自己寫(xiě)了出來(lái),需要的朋友可以參考下
    2021-07-07
  • C#簡(jiǎn)單配置類及數(shù)據(jù)綁定

    C#簡(jiǎn)單配置類及數(shù)據(jù)綁定

    這篇文章主要介紹了C#簡(jiǎn)單配置類及數(shù)據(jù)綁定,原理比較簡(jiǎn)單,適用于一些小型項(xiàng)目。主要實(shí)現(xiàn)保存配置到j(luò)son文件、從文件或?qū)嵗虞d配置類的屬性值、數(shù)據(jù)綁定到界面控件的功能,需要的朋友可以參考一下
    2021-11-11
  • C#: 引用變量與數(shù)值變量的區(qū)別

    C#: 引用變量與數(shù)值變量的區(qū)別

    在C#中主要存在兩大類型的數(shù)據(jù):引用類型(class)和值類型(struct)。本文探討一下C#中引用變量和數(shù)值變量的區(qū)別。
    2013-03-03
  • C# WinForm-Timer控件的使用

    C# WinForm-Timer控件的使用

    這篇文章主要介紹了C# WinForm-Timer控件的使用,幫助大家更好的理解和學(xué)習(xí)c# winform,感興趣的朋友可以了解下
    2020-11-11
  • 淺談C#中ToString()和Convert.ToString()的區(qū)別

    淺談C#中ToString()和Convert.ToString()的區(qū)別

    本文介紹了ToString()和Convert.ToString()的使用方法,他們之間的區(qū)別,以及從object到string的轉(zhuǎn)換方法,希望對(duì)學(xué)習(xí)C#編程的你有所幫助
    2016-11-11
  • C#精確計(jì)算年齡的方法分析

    C#精確計(jì)算年齡的方法分析

    這篇文章主要介紹了C#精確計(jì)算年齡的方法,實(shí)例分析了C#計(jì)算時(shí)間的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-03-03
  • C#字符串與正則表達(dá)式的圖文詳解

    C#字符串與正則表達(dá)式的圖文詳解

    正則表達(dá)式是個(gè)非常好的工具,它的作用主要是用簡(jiǎn)單的有規(guī)則的表達(dá)式來(lái)檢索和匹配一段字符串,這篇文章主要給大家介紹了關(guān)于C#字符串與正則表達(dá)式的相關(guān)資料,需要的朋友可以參考下
    2022-09-09
  • C#中利用LINQ to XML與反射把任意類型的泛型集合轉(zhuǎn)換成XML格式字符串的方法

    C#中利用LINQ to XML與反射把任意類型的泛型集合轉(zhuǎn)換成XML格式字符串的方法

    本文主要介紹了C#中利用LINQ to XML與反射把任意類型的泛型集合轉(zhuǎn)換成XML格式字符串的方法:利用反射,讀取一個(gè)類型的所有屬性,然后再把屬性轉(zhuǎn)換成XML元素的屬性或者子元素。下面注釋比較完整,需要的朋友可以看下
    2016-12-12
  • C#集合之自定義集合類

    C#集合之自定義集合類

    這篇文章介紹了C#集合之自定義集合類,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-05-05
  • C# .NET 中的緩存實(shí)現(xiàn)詳情

    C# .NET 中的緩存實(shí)現(xiàn)詳情

    軟件開(kāi)發(fā)中最常用的模式之一是 緩存 ,其包括進(jìn)程內(nèi)緩存、持久性進(jìn)程內(nèi)緩存和分布式緩存,本文我們將主要介紹進(jìn)程內(nèi)緩存,需要的朋友可以參考下面文章的具體內(nèi)容
    2021-09-09

最新評(píng)論

大余县| 房山区| 昌图县| 江达县| 安阳市| 海口市| 楚雄市| 和平区| 元氏县| 宜川县| 汉沽区| 花莲县| 卓资县| 沧源| 滁州市| 平江县| 高邮市| 涟水县| 甘南县| 赣榆县| 离岛区| 江孜县| 姚安县| 嘉鱼县| 扬州市| 宁晋县| 保定市| 河曲县| 荥经县| 滕州市| 开化县| 包头市| 瓮安县| 巧家县| 蓝山县| 屏南县| 平乡县| 洪雅县| 克山县| 柳州市| 忻州市|