public override void OnModuleDeactivate() { undoSystem.UnregisterUndoCallback(UndoRedoPerformed); CleanupShapeEditors(); m_Selected = null; spriteEditorWindow.enableMouseMoveEvent = false; if (m_Outline != null) { undoSystem.ClearUndo(m_Outline); ScriptableObject.DestroyImmediate(m_Outline); m_Outline = null; } }
protected virtual void LoadOutline() { m_Outline = ScriptableObject.CreateInstance <SpriteOutlineModel>(); m_Outline.hideFlags = HideFlags.HideAndDontSave; var spriteDataProvider = spriteEditorWindow.GetDataProvider <ISpriteEditorDataProvider>(); var outlineDataProvider = spriteEditorWindow.GetDataProvider <ISpriteOutlineDataProvider>(); foreach (var rect in spriteDataProvider.GetSpriteRects()) { var outlines = outlineDataProvider.GetOutlines(rect.spriteID); m_Outline.AddListVector2(rect.spriteID, outlines); m_Outline[m_Outline.Count - 1].tessellationDetail = outlineDataProvider.GetTessellationDetail(rect.spriteID); } }
public override bool ApplyRevert(bool apply) { if (m_Outline != null) { if (apply) { var outlineDataProvider = spriteEditorWindow.GetDataProvider <ISpriteOutlineDataProvider>(); for (int i = 0; i < m_Outline.Count; ++i) { outlineDataProvider.SetOutlines(m_Outline[i].spriteID, m_Outline[i].ToListVector()); outlineDataProvider.SetTessellationDetail(m_Outline[i].spriteID, m_Outline[i].tessellationDetail); } } ScriptableObject.DestroyImmediate(m_Outline); m_Outline = null; } return(true); }