91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Unity動態對象優化

發布時間:2020-07-31 21:09:50 來源:網絡 閱讀:17530 作者:jxw167 欄目:開發技術

   對于靜態對象,Unity可以使用通過勾選Static,然后讓Unity自身進行優化Draw Calls,但是對于動態對象,Unity在這方面沒有處理,這就需要我們自己去實現,實現的原理就是首先去遍歷每個對象的SkinnderMeshRenderer,然后將其所有的動態對象組合成一個大的對象并且將骨骼動畫賦值給他,這樣,我們就實現了動態對象的優化,代碼如下:

public static void CombineToMesh(GameObject _go)
    {
        SkinnedMeshRenderer[] _smr = _go.GetComponentsInChildren<SkinnedMeshRenderer>();
        List<CombineInstance> lcom = new List<CombineInstance>();

        List<Material> lmat = new List<Material>();
        List<Transform> ltra = new List<Transform>();

        for (int i = 0; i < _smr.Length; i++)
        {
            lmat.AddRange(_smr[i].materials);
            ltra.AddRange(_smr[i].bones);

            for (int sub = 0; sub < _smr[i].sharedMesh.subMeshCount; sub++ )
            {
                CombineInstance ci = new CombineInstance();
                ci.mesh = _smr[i].sharedMesh;
                ci.subMeshIndex = sub;
                lcom.Add(ci);
            }
            Destroy(_smr[i].gameObject);

        }

        SkinnedMeshRenderer _r = _go.GetComponent<SkinnedMeshRenderer>();
        if (_r == null)
            _r = _go.AddComponent<SkinnedMeshRenderer>();
        _r.sharedMesh = new Mesh();
        _r.bones = ltra.ToArray();
        _r.materials = new Material[] { lmat[0] };
        _r.rootBone = _go.transform;

        _r.sharedMesh.CombineMeshes(lcom.ToArray(), true, false);

    }

以上是完整的源代碼,大家只要將其調用即可。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

论坛| 斗六市| 沙坪坝区| 仲巴县| 扶风县| 类乌齐县| 香港| 昌宁县| 犍为县| 东安县| 贵溪市| SHOW| 咸丰县| 西华县| 兴隆县| 甘孜县| 余江县| 陆川县| 天水市| 肥城市| 岳池县| 乌恰县| 彩票| 应用必备| 义乌市| 城口县| 高州市| 昌宁县| 汉源县| 新干县| 井冈山市| 衡山县| 古田县| 平度市| 准格尔旗| 汾阳市| 同德县| 巧家县| 孙吴县| 山东| 樟树市|