public override bool ApplyRevert(bool apply) { if (this.m_Outline != null) { if (apply) { ISpritePhysicsOutlineDataProvider dataProvider = this.spriteEditorWindow.GetDataProvider <ISpritePhysicsOutlineDataProvider>(); for (int i = 0; i < this.m_Outline.Count; i++) { dataProvider.SetOutlines(this.m_Outline[i].spriteID, this.m_Outline[i].ToListVector()); dataProvider.SetTessellationDetail(this.m_Outline[i].spriteID, this.m_Outline[i].tessellationDetail); } } UnityEngine.Object.DestroyImmediate(this.m_Outline); this.m_Outline = null; } return(true); }
private static void OverwriteOutline(Sprite mainSprite, float tessellationDetail, List <Vector2[]> outlines) { ISpriteEditorDataProvider mainSpriteDataProvider = AssetImporter.GetAtPath(AssetDatabase.GetAssetPath(mainSprite)) as ISpriteEditorDataProvider; mainSpriteDataProvider.InitSpriteEditorDataProvider(); ISpritePhysicsOutlineDataProvider meshDataProvider = mainSpriteDataProvider.GetDataProvider <ISpritePhysicsOutlineDataProvider>(); GUID mainGuid = mainSprite.GetSpriteID(); meshDataProvider.SetOutlines(mainGuid, outlines); meshDataProvider.SetTessellationDetail(mainGuid, tessellationDetail); mainSpriteDataProvider.Apply(); //AssetDatabase.ImportAsset(AssetDatabase.GetAssetPath(mainSprite)); Debug.Log("Outlines overwritten for " + mainSprite.name); }