using UnityEngine; using System; namespace OpenCVForUnity { abstract public class DisposableObject : IDisposable { public bool IsDisposed { get; protected set; } public bool IsEnabledDispose { get; set; } protected DisposableObject() : this(true) { } protected DisposableObject(bool isEnabledDispose) { IsEnabledDispose = isEnabledDispose; IsDisposed = false; } public void Dispose() { Dispose(true); GC.SuppressFinalize(this); } protected virtual void Dispose(bool disposing) { if (!IsDisposed) { if (disposing) { } IsDisposed = true; } } ~DisposableObject() { Dispose(false); } public void ThrowIfDisposed() { if (IsDisposed) throw new ObjectDisposedException(GetType().FullName); } } }