using System; using UnityEngine; namespace UnityEditor.U2D.Animation { internal class AssociateBonesScope : IDisposable { private bool m_Disposed; private bool m_AssociateBones; private SpriteCache m_Sprite; public AssociateBonesScope(SpriteCache sprite) { m_Sprite = sprite; m_AssociateBones = m_Sprite.AssociatePossibleBones(); } ~AssociateBonesScope() { 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_AssociateBones) m_Sprite.DeassociateUnusedBones(); } } }