zoukankan      html  css  js  c++  java
  • 通过组合mesh优化资源

    using UnityEngine;
    using System.Collections;
    using System.Collections.Generic;

    public class ConbineOpMesh : MonoBehaviour {

    void Start () {
    CombineToMesh (this.gameObject);
    }

    public 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);
    }

    void Update () {

    }
    }

  • 相关阅读:
    C++模板&泛型编程
    C++继承
    测试pc大、小端
    C语言标准定义的32个关键字
    *塔,菱形
    练习小题目
    c一些关键字
    uvaoj 489
    uvaoj1339
    hdu1969Pie(根据体积二分,分馅饼)
  • 原文地址:https://www.cnblogs.com/Akishimo/p/4973419.html
Copyright © 2011-2022 走看看