public void Dispose()
 {
     coroutine = null;
     pauseEvent = null;
     completionEvent = null;
 }
 public void AddPauseDelegate(params OnRoutinePause []pauseDelegates)
 {
     foreach(OnRoutinePause p in pauseDelegates)
         if (p != null)
             pauseEvent += p;
 }