///<inheritdoc />
 protected override bool InvokeWaitForCompletion()
 {
     if (IsDone)
     {
         return(true);
     }
     if (m_DepOp.IsValid() && !m_DepOp.IsDone)
     {
         m_DepOp.WaitForCompletion();
     }
     if (m_WaitForCompletionCallback == null)
     {
         return(false);
     }
     m_RM?.Update(Time.unscaledDeltaTime);
     if (!HasExecuted)
     {
         InvokeExecute();
     }
     if (m_WaitForCompletionCallback == null)
     {
         return(false);
     }
     return(m_WaitForCompletionCallback.Invoke());
 }
        /// <inheritdoc />
        protected override bool InvokeWaitForCompletion()
        {
            if (IsDone)
            {
                return(true);
            }
            if (m_RtdOp.IsValid() && !m_RtdOp.IsDone)
            {
                m_RtdOp.WaitForCompletion();
            }

            m_RM?.Update(Time.deltaTime);

            if (!HasExecuted)
            {
                InvokeExecute();
            }

            if (m_DepOp.IsValid() && !m_DepOp.IsDone)
            {
                m_DepOp.WaitForCompletion();
            }
            m_RM?.Update(Time.deltaTime);

            return(IsDone);
        }