using System; public class KeyframeToggleContext : IDisposable { private IKeyframeSetter _keyframmable; private bool _enableKeyframes; public KeyframeToggleContext(IKeyframeSetter keyframmable, bool enableKeyframes = false) { _keyframmable = keyframmable; _enableKeyframes = enableKeyframes; Toggle(true); } public void ForceSetKeyframe(int frameNum = -1) { Toggle(false); _keyframmable.SetKeyframe(frameNum); Toggle(true); } public void Dispose() { Toggle(false); } private void Toggle(bool on) { if (on) { if (_enableKeyframes) _keyframmable.EnableKeyframeSet(); else _keyframmable.DisableKeyframeSet(); } else { if (_enableKeyframes) _keyframmable.DisableKeyframeSet(); else _keyframmable.EnableKeyframeSet(); } } }