public void RevertChanges() { Clear(""); if (spriteMesh && spriteMeshData) { pivotPoint = spriteMeshData.pivotPoint; rect = SpriteMeshUtils.GetRect(spriteMesh.sprite); m_TexVertices = spriteMeshData.vertices.ToList(); nodes = m_TexVertices.ConvertAll(v => Node.Create(m_TexVertices.IndexOf(v))); boneWeights = spriteMeshData.boneWeights.ToList(); edges = spriteMeshData.edges.ToList().ConvertAll(e => Edge.Create(nodes[e.index1], nodes[e.index2])); holes = spriteMeshData.holes.ToList().ConvertAll(h => new Hole(h)); indices = spriteMeshData.indices.ToList(); bindPoses = spriteMeshData.bindPoses.ToList().ConvertAll(b => b.Clone() as BindInfo); CreateBlendShapeCache(spriteMeshData); if (boneWeights.Count != nodes.Count) { boneWeights = nodes.ConvertAll(n => BoneWeight.Create()); } m_DirtyVertices = true; } }