コード例 #1
0
    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);
    }