public void CloneFace() { if (initFace == null) { Debug.Log("缺少初始化脸型"); return; } faceGroups.Clear(); FacePincher initFacePicher = initFace.GetComponent <FacePincher>(); foreach (FaceGroup faceGroup in initFacePicher.faceGroups) { // 初始化faceGroup数据 FaceGroup tempGroup = new FaceGroup(); faceGroups.Add(tempGroup); tempGroup.ResetData(tempGroup); foreach (FaceGroupPart faceGroupPart in faceGroup.faceGroupParts) { // 初始化faceGroupPart数据 FaceGroupPart tempFaceGroupPart = new FaceGroupPart(); tempGroup.faceGroupParts.Add(tempFaceGroupPart); tempFaceGroupPart.ResetData(faceGroupPart); foreach (FaceBone faceBone in faceGroupPart.faceBones) { // 初始化faceBone数据 FaceBone tempFaceBones = new FaceBone(); tempFaceGroupPart.faceBones.Add(tempFaceBones); string path = ""; Transform tempTrans = faceBone.bone; Transform root = faceBone.bone.root; while (tempTrans != root) { path = tempTrans.name + path; if (tempTrans.parent != root) { path = "/" + path; } tempTrans = tempTrans.parent; } Transform bone = transform.Find(path); tempFaceBones.ResetData(faceBone, bone, bone); } } } OnValidate(); }