public CoroutineHandler StartHandler(IEnumerator rIEnum) { var rCourtineObj = UtilTool.CreateGameObject(this.mCoroutineRootObj, "coroutine"); CoroutineHandler rHandler = rCourtineObj.ReceiveComponent <CoroutineHandler>(); rHandler.StartHandler(rIEnum); return(rHandler); }
public void Stop(CoroutineHandler rCoroutineHandler) { if (rCoroutineHandler != null) { rCoroutineHandler.StopAllCoroutines(); GameObject.DestroyImmediate(rCoroutineHandler.gameObject); rCoroutineHandler.Coroutine = null; } rCoroutineHandler = null; }
public IAsyncOperation <T> Start(IEnumerator rIEnum, Action <float> rProgressAction = null) { this.mAsyncResult = new AsyncCompletionSource <T>(); this.mHandler = CoroutineManager.Instance.StartHandler(rIEnum); this.mAsyncResult.AddCompletionCallback((rContinuation) => { if (rContinuation.IsCanceled || rContinuation.IsFaulted) { CoroutineManager.Instance.Stop(this.mHandler); } }); if (rProgressAction != null) { this.mAsyncResult.AddProgressCallback(rProgressAction); } return(this.mAsyncResult.Operation); }
public CoroutineRequest <T> Start(IEnumerator rIEnum) { this.Handler = CoroutineManager.Instance.StartHandler(rIEnum); return(this); }