private void PutOn(GameObject go, int type, bool isSkinned, bool needMapping) { if (null == go) { return; } if (isSkinned) { go.transform.SetParent(_characterGameObject.transform, false); go.transform.localPosition = Vector3.zero; go.transform.localRotation = Quaternion.identity; // go.transform.localScale = Vector3.one; var allWardrobeBones = go.GetComponentsInChildren <Transform>(); _allAvatarBones[(Wardrobe)type] = allWardrobeBones; foreach (var renderer in go.GetComponentsInChildren <SkinnedMeshRenderer>()) { // 映射装扮与人物骨骼 if (needMapping) { var wardrobeBones = GetBonesOfTheSameName(renderer.bones, allWardrobeBones); MappingBones(wardrobeBones, type); } renderer.bones = GetBonesOfTheSameName(renderer.bones, _allBonesDictionary); renderer.rootBone = GetBoneOfTheSameName(renderer.rootBone, _allBonesDictionary); } } else { _mount.MountWardrobe(go, _characterGameObject); } Logger.InfoFormat("CharacterLog-- SureAddWardrobe: {0}", go.name); }