PO/Library/PackageCache/com.unity.2d.animation@5.0.7/Editor/SkinningModule/Undo/DisableUndoScope.cs

40 lines
962 B
C#
Raw Normal View History

2022-01-12 10:06:03 +03:00
using System;
using UnityEngine;
namespace UnityEditor.U2D.Animation
{
internal class DisableUndoScope : IDisposable
{
private bool m_Disposed;
private ICacheUndo m_CacheUndo;
private IUndo m_UndoOverride;
public DisableUndoScope(ICacheUndo cacheUndo)
{
Debug.Assert(cacheUndo != null);
m_CacheUndo = cacheUndo;
m_UndoOverride = m_CacheUndo.undoOverride;
m_CacheUndo.undoOverride = new DisabledUndo();
}
~DisableUndoScope()
{
if (!m_Disposed)
Debug.LogError("Scope was not disposed! You should use the 'using' keyword or manually call Dispose.");
}
public void Dispose()
{
if (m_Disposed)
return;
m_Disposed = true;
if (m_CacheUndo != null)
m_CacheUndo.undoOverride = m_UndoOverride;
}
}
}