Example #1
0
    MeshTextureNumberingUnit registMesh(MeshFilter mf, Mesh srcMesh, Material[] srcMats)
    {
        var meshKey = srcMesh.GetInstanceID().ToString() + ":";

        for (var i = 0; i < srcMats.Length; i++)
        {
            meshKey += (srcMats[i].mainTexture != null ? srcMats[i].mainTexture.GetInstanceID().ToString() : "") + ":";
        }


        if (meshInfos.ContainsKey(meshKey))
        {
            mf.sharedMesh = meshInfos[meshKey].dscMesh;


            return(null);
        }
        else
        {
            var dstMesh = new Mesh();

            var mi = new MeshTextureNumberingUnit(srcMesh, dstMesh, srcMats);

            meshInfos[meshKey] = mi;

            mf.sharedMesh = dstMesh;


            return(mi);
        }
    }
Example #2
0
    Vector2[] getUvs(Mesh srcMesh, MeshTextureNumberingUnit mi, Rect[] rects)
    {
        var uvs = new Vector2[srcMesh.vertexCount]; Debug.Log(mi.ids.Length);

        for (var i = 0; i < mi.ids.Length; i++)
        {
            convertUvs(srcMesh.GetTriangles(i), rects[mi.ids[i]], srcMesh.uv, uvs);
        }

        return(uvs);
    }
Example #3
0
    Vector2[] getUvs(Mesh srcMesh, MeshTextureNumberingUnit mi, Rect[] rects)
    {
        var uvs = new Vector2[srcMesh.vertexCount];

        for (var i = 0; i < mi.ids.Length; i++)
        {
            if (srcMesh.subMeshCount > i)
            {
                convertUvs(srcMesh.GetTriangles(i), rects[mi.ids[i].texId], srcMesh.uv, uvs);
            }
        }

        return(uvs);
    }
Example #4
0
    Color32[] getColors(Mesh srcMesh, MeshTextureNumberingUnit mi)
    {
        var colors = srcMesh.colors32;        //Debug.Log(colors.Length);

        if (mi.hasOverridedPalletId)
        {
            if (colors.Length == 0)
            {
                colors = new Color32[srcMesh.vertexCount];
            }

            for (var i = 0; i < mi.ids.Length; i++)
            {
                overridePalletId(srcMesh.GetTriangles(i), mi.ids[i].palletId, colors);
            }
        }

        return(colors);
    }
Example #5
0
    Mesh registMesh(Mesh srcMesh, Texture2D srcTex, int id)
    {
        Mesh dstMesh;


        var meshKey = ((long)srcMesh.GetInstanceID() << 32) + (long)srcTex.GetInstanceID();        //((long)srcMesh.GetInstanceID() << 32) | (long)srcTex.GetInstanceID();

        if (meshInfos.ContainsKey(meshKey))
        {
            dstMesh = meshInfos[meshKey].dscMesh;
        }
        else
        {
            dstMesh = new Mesh();

            var mi = new MeshTextureNumberingUnit(srcMesh, dstMesh, id);

            meshInfos[meshKey] = mi;
        }

        return(dstMesh);
    }
Example #6
0
    MeshTextureNumberingUnit registMesh(MeshFilter mf, Mesh srcMesh, Material[] srcMats)
    {
        // "meshId/texId@paretId:texId@paretId:..."

        var meshKey = srcMesh.GetInstanceID().ToString() + "/";

        for (var i = 0; i < srcMats.Length; i++)
        {
            var texId = srcMats[i].mainTexture != null ? srcMats[i].mainTexture.GetInstanceID().ToString() : "";

            var palletId = srcMats[i].HasProperty(spidPalletId) ? ((int)srcMats[i].GetFloat(spidPalletId)).ToString() : "";

            meshKey += texId + "@" + palletId + ":";
        }


        if (meshInfos.ContainsKey(meshKey))
        {
            mf.sharedMesh = meshInfos[meshKey].dscMesh;


            return(null);
        }
        else
        {
            var dstMesh = new Mesh();

            var mi = new MeshTextureNumberingUnit(srcMesh, dstMesh, srcMats);

            meshInfos[meshKey] = mi;

            mf.sharedMesh = dstMesh;


            return(mi);
        }
    }