代码
先上代码,再对比效果。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ComBineSM : MonoBehaviour
{
// 待合并的skinnedrender(需要所有skinnedMeshrenderer使用同一个材质,否则无法起到合并dc的目的)
public SkinnedMeshRenderer[] renders;
// 合并后使用的材质
public Material material;
void Start()
{
// 先记录当前预制件的变换矩阵,合并之后再赋值回来
Vector3 l_position = transform.position;
Quaternion l_rotation = transform.rotation;
Vector3 l_scale = transform.localScale;
transform.position = Vector3.zero;
transform.rotation = Quaternion.identity;
transform.localScale = Vector3.one;
// 待合并的skinnedrender需要记录的信息
List<Transform> bones = new List<Transform>();
List<BoneWeight> boneWeights = new List<BoneWeight>();
List<CombineInstance> combineInstances = new List<CombineInstanc