这些mesh中资源包含网格、材质和骨骼信息
//第二参数是所有mesh上组件SkinnedMeshRenderer集合 private GameObject CreatPerson (GameObject root , List<SkinnedMeshRenderer> skinneds) { List<CombineInstance> combineInstances = new List<CombineInstance> (); List<Material> materials = new List<Material> (); List<Transform> bones = new List<Transform> (); Transform[] transforms = root.GetComponents<Transform> (); foreach(SkinnedMeshRenderer smr in skinneds) { materials.AddRange (smr.sharedMaterials); bones.AddRange(smr.bones); for(int sub = 0; sub < smr.sharedMesh.subMeshCount; sub++) { CombineInstance ci = new CombineInstance (); Mesh mesh1 = new Mesh(); smr.BakeMesh(mesh1); mesh1.uv = smr.sharedMesh.uv; ci.mesh = mesh1; ci.subMeshIndex = sub; combineInstances.Add (ci); } } SkinnedMeshRenderer r = root.AddComponent<SkinnedMeshRenderer> (); Mesh mesh = new Mesh (); mesh.CombineMeshes(combineInstances.ToArray(), false, false); r.sharedMesh = mesh; r.bones = bones.ToArray (); r.materials = materials.ToArray (); r.rootBone = root.transform; return root; }源码下载
posted on 2020-06-03 17:33 某年夏天 阅读(832) 评论(0) 收藏 举报