public static Mesh DupMesh(Mesh mesh, MegaModifyObject mod) { Mesh clonemesh = new Mesh(); clonemesh.vertices = mod.verts; //mesh.vertices; #if UNITY_5_0 || UNITY_5_1 || UNITY_5 || UNITY_2017 || UNITY_2018 clonemesh.uv2 = mesh.uv2; clonemesh.uv3 = mesh.uv3; clonemesh.uv4 = mesh.uv4; #else clonemesh.uv1 = mesh.uv1; clonemesh.uv2 = mesh.uv2; #endif clonemesh.uv = mod.uvs; //mesh.uv; clonemesh.normals = mesh.normals; clonemesh.tangents = mesh.tangents; clonemesh.colors = mesh.colors; clonemesh.subMeshCount = mesh.subMeshCount; for (int s = 0; s < mesh.subMeshCount; s++) { clonemesh.SetTriangles(mesh.GetTriangles(s), s); } CopyBlendShapes(mesh, clonemesh); clonemesh.boneWeights = mesh.boneWeights; clonemesh.bindposes = mesh.bindposes; clonemesh.name = mesh.name + "_copy"; mod.RecalcNormals(); clonemesh.RecalculateBounds(); return(clonemesh); }