Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void Generate ()
- {
- SkinnedMeshRenderer smr = GetComponent<SkinnedMeshRenderer>();
- List<CombineInstance> combineInstances = new List<CombineInstance>();
- boneWeightsList = new List<BoneWeight>();
- CombineInstance ci1 = new CombineInstance();
- ci1.mesh = smr.sharedMesh;
- ci1.transform = smr.transform.localToWorldMatrix;
- ci1.subMeshIndex = 0;
- combineInstances.Add(ci1);
- boneWeightsList.AddRange(smr.sharedMesh.boneWeights);
- /*materialList = new List<Material>();
- materialList.Add(smr.material);*/
- Transform[] bones = smr.bones;//bones.GetComponentsInChildren<Transform>();
- foreach(Transform bone in bones)
- Debug.Log(bone.name);
- //Debug.Log("Elements length : " + elements.Length.ToString() + "config length : " + config.Length.ToString());
- for (int i = 0; i < 1; i++ )
- {
- //Debug.Log("i = " + i + ", config[i] = " + config[i] + ".");
- SkinnedMeshRenderer smr1 = (SkinnedMeshRenderer)Object.Instantiate(element);
- Debug.Log(element);
- Debug.Log(smr1.sharedMesh.subMeshCount);
- // Add meshes to combineinstances
- for (int sub = 0; sub < smr1.sharedMesh.subMeshCount; sub++)
- {
- CombineInstance ci = new CombineInstance();
- ci.mesh = smr1.sharedMesh;
- ci.transform = smr1.transform.localToWorldMatrix;
- ci.subMeshIndex = 0;
- combineInstances.Add(ci);
- }
- boneWeightsList.AddRange(smr1.sharedMesh.boneWeights);
- Object.Destroy(smr1.gameObject);
- }
- // Combine meshes
- smr.sharedMesh = new Mesh();
- smr.sharedMesh.CombineMeshes(combineInstances.ToArray(), true, false);
- smr.sharedMesh.boneWeights = boneWeightsList.ToArray();
- smr.bones = bones;
- // Update bindposes
- List<Matrix4x4> bindposes = new List<Matrix4x4>();
- for (int i = 0; i < bones.Length; i++)
- {
- bindposes.Add(bones[i].worldToLocalMatrix * transform.localToWorldMatrix);
- }
- smr.sharedMesh.bindposes = bindposes.ToArray();
- //smr.sharedMesh.RecalculateBounds();
- transform.Rotate(Vector3.right, -90);
- //GetComponent<Animation>().Play();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement