public void OnAfterDeserialize()
        {
            // initialize wrapper if values a set
            if (m_Owner != null && string.IsNullOrEmpty(m_EnumeratorFunctionName) == false)
            {
                var method = m_Owner.GetType().GetMethod(m_EnumeratorFunctionName,
                                                         BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance);

                if (method != null)
                {
                    m_EnumeratorFunction = (EnumeratorFunction)method.CreateDelegate(typeof(EnumeratorFunction), m_Owner);
                }
            }
        }
 //////////////////////////////////////////////////////////////////////////
 public CoroutineWrapper(EnumeratorFunction func, MonoBehaviour owner = null)
 {
     m_Owner = owner ? owner : global::Core.Core.Instance;
     m_EnumeratorFunction = func;
 }