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 () {

    }
    }

  • 相关阅读:
    课程作业(一)
    PTA 5-3 解题报告
    作业(四)
    C#循环语句整理
    C#数组和集合整理
    作业(三)
    1.0总结
    如何在C++中产生随机数
    CLSRSC-400: A system reboot is required to continue installing.
    Upgrade a Non-CDB To a PDB on CDB
  • 原文地址:https://www.cnblogs.com/Akishimo/p/4973419.html
Copyright © 2011-2022 走看看