public void CopyUVs(int id, bool baseOrBlend, bool setOrGet)
        {
            UVNormalBlendMonoBehaviour.Data dstData = Datas[(int)id];
            MeshRenderer mr = dstData.renderer.instance;

            Operations.vMesh m   = new Operations.vMesh(mr, false, false);
            List <Vector2>   uvs = baseOrBlend ? dstData.blendUVs : dstData.baseUVs;

            if (setOrGet)
            {
                for (int i = 0; i < m.submeshes.Count; i++)
                {
                    Operations.vSubmesh s = m.submeshes[i];
                    for (int j = 0; j < s.vertexList.Count; j++)
                    {
                        s.vertexList[j].uv[0] = uvs[j][0];
                        s.vertexList[j].uv[1] = -uvs[j][1];
                    }
                }
                m.Flush();
            }
            else
            {
                uvs.Clear();
                for (int i = 0; i < m.submeshes.Count; i++)
                {
                    Operations.vSubmesh s = m.submeshes[i];
                    for (int j = 0; j < s.vertexList.Count; j++)
                    {
                        Vector2 uv = new Vector2(s.vertexList[j].uv[0], -s.vertexList[j].uv[1]);
                        uvs.Add(uv);
                    }
                }
                Parser.datas = Datas;
            }

            Changed = true;
        }
示例#2
0
        public void CopyNormals(int id, AnimatorEditor dstAnimatorEditor, bool minOrMax, bool setOrGet)
        {
            GenericMono  dstData    = GenericMonos[(int)id];
            int          dstMeshRId = dstAnimatorEditor.GetMeshRendererId(dstData.ObjectName);
            MeshRenderer mr         = (MeshRenderer)dstAnimatorEditor.Meshes[dstMeshRId];

            Operations.vMesh m       = new Operations.vMesh(mr, false, false);
            List <Vector3>   normals = minOrMax ? dstData.NormalMax : dstData.NormalMin;

            if (setOrGet)
            {
                for (int i = 0; i < m.submeshes.Count; i++)
                {
                    Operations.vSubmesh s = m.submeshes[i];
                    for (int j = 0; j < s.vertexList.Count; j++)
                    {
                        s.vertexList[j].normal = normals[j];
                    }
                }
                m.Flush();
            }
            else
            {
                normals.Clear();
                for (int i = 0; i < m.submeshes.Count; i++)
                {
                    Operations.vSubmesh s = m.submeshes[i];
                    for (int j = 0; j < s.vertexList.Count; j++)
                    {
                        normals.Add(s.vertexList[j].normal);
                    }
                }
                Parser.Param = GenericMonos;
            }

            Changed = true;
        }
        public void CopyNormals(int id, bool baseOrBlend, bool setOrGet)
        {
            UVNormalBlendMonoBehaviour.Data dstData = Datas[(int)id];
            MeshRenderer mr = dstData.renderer.instance;

            Operations.vMesh m       = new Operations.vMesh(mr, false, false);
            List <Vector3>   normals = baseOrBlend ? dstData.blendNormals : dstData.baseNormals;

            if (setOrGet)
            {
                for (int i = 0; i < m.submeshes.Count; i++)
                {
                    Operations.vSubmesh s = m.submeshes[i];
                    for (int j = 0; j < s.vertexList.Count; j++)
                    {
                        s.vertexList[j].normal = normals[j];
                    }
                }
                m.Flush();
            }
            else
            {
                normals.Clear();
                for (int i = 0; i < m.submeshes.Count; i++)
                {
                    Operations.vSubmesh s = m.submeshes[i];
                    for (int j = 0; j < s.vertexList.Count; j++)
                    {
                        normals.Add(s.vertexList[j].normal);
                    }
                }
                Parser.datas = Datas;
            }

            Changed = true;
        }