Example #1
0
 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);
        }