Exemplo n.º 1
0
        public void ApplyChanges()
        {
            if (spriteMeshData)
            {
                spriteMeshData.vertices    = m_TexVertices.ToArray();
                spriteMeshData.boneWeights = boneWeights.ToArray();
                spriteMeshData.edges       = indexedEdges.ToArray();
                spriteMeshData.holes       = holes.ConvertAll(h => h.vertex).ToArray();
                spriteMeshData.indices     = indices.ToArray();
                spriteMeshData.bindPoses   = bindPoses.ToArray();
                spriteMeshData.pivotPoint  = pivotPoint;

                SpriteMeshUtils.DestroyBlendShapes(spriteMeshData, false, "");

                SetBlendShapesFromCache();

                EditorUtility.SetDirty(spriteMeshData);

                string spriteAssetPath = AssetDatabase.GetAssetPath(spriteMesh.sprite);
                SpriteMeshUtils.UpdateAssets(spriteMesh, spriteMeshData);
                AssetDatabase.SaveAssets();
                AssetDatabase.Refresh();
                TextureImporter textureImporter = AssetImporter.GetAtPath(spriteAssetPath) as TextureImporter;
                textureImporter.userData = textureImporter.assetTimeStamp.ToString();
                AssetDatabase.StartAssetEditing();
                AssetDatabase.ImportAsset(spriteAssetPath);
                AssetDatabase.StopAssetEditing();
                isDirty = false;
            }

            if (spriteMeshInstance)
            {
                SpriteMeshUtils.UpdateRenderer(spriteMeshInstance, false);
            }
        }