public override void OnModuleDeactivate()
        {
            Undo.undoRedoPerformed -= UndoRedoPerformed;

            m_BoneCacheManager.CleanUp();
            m_BoneCacheManager       = null;
            m_SpriteEditorModuleView = null;
            m_BonePresenter          = null;
        }
        public override void OnModuleActivate()
        {
            Undo.undoRedoPerformed += UndoRedoPerformed;

            m_BoneCacheManager = new BoneCacheManager(spriteEditor.GetDataProvider <ISpriteBoneDataProvider>(), spriteEditor.GetDataProvider <ISpriteMeshDataProvider>());

            m_SpriteEditorModuleView = new BoneSpriteEditorModuleView(spriteEditor);

            var model         = new BoneModel(spriteEditor.SetDataModified);
            var hierarchyView = new BoneHierarchyView();
            var toolView      = new BoneToolView();
            var infoView      = new BoneInfoView();

            m_BonePresenter = new BonePresenter(model, hierarchyView, toolView, infoView);

            m_CurrentSpriteRectGUID = spriteEditor.selectedSpriteRect != null ? spriteEditor.selectedSpriteRect.spriteID : new GUID();
            PostSelectedSpriteRectChange(m_CurrentSpriteRectGUID);
        }