Example #1
0
        protected override void LoadOutline()
        {
            this.m_Outline = ScriptableObject.CreateInstance <SpriteOutlineModel>();
            ISpriteEditorDataProvider         dataProvider  = this.spriteEditorWindow.GetDataProvider <ISpriteEditorDataProvider>();
            ISpritePhysicsOutlineDataProvider dataProvider2 = this.spriteEditorWindow.GetDataProvider <ISpritePhysicsOutlineDataProvider>();

            SpriteRect[] spriteRects = dataProvider.GetSpriteRects();
            for (int i = 0; i < spriteRects.Length; i++)
            {
                SpriteRect       spriteRect = spriteRects[i];
                List <Vector2[]> outlines   = dataProvider2.GetOutlines(spriteRect.spriteID);
                this.m_Outline.AddListVector2(spriteRect.spriteID, outlines);
                this.m_Outline[this.m_Outline.Count - 1].tessellationDetail = dataProvider2.GetTessellationDetail(spriteRect.spriteID);
            }
        }
Example #2
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);
        }