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); } }