public SkinnedMeshRenderer Target; public SkinnedMeshRenderer Source; ⎗ ✓ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28void Start () { Combine(); } void Combine() { Dictionary<string, Transform> boneMap = new Dictionary<string, Transform>(); foreach (Transform bone in Target.bones) { boneMap[bone.name] = bone; } Transform[] SourceBones = Source.bones; Transform[] NewBones = new Transform[SourceBones.Length]; for (int i = 0; i < SourceBones.Length; i++) { string boneName = SourceBones[i].name; if (boneMap.TryGetValue(boneName, out SourceBones[i])) { NewBones[i] = boneMap[boneName]; Debug.Log("mapped " + SourceBones[i].ToString()); } }; Source.bones = NewBones; }