//停止运行 public void Stop() { if (state == CoroutineItemState.Running) { if (mCoroutiner != null) { Main.instance.StopCoroutine(mCoroutiner); } state = CoroutineItemState.Stop; } }
public void Run() { mIEnumber = targetDelegate.Method.Invoke(targetObject, args) as IEnumerator; //将委托绑定的方法转换程IEnumberator因为其返回类型为IEnumerator,被调用之后才可以返回IEnumerator类型 if (mIEnumber != null) { mCoroutiner = Main.instance.StartCoroutine(this); state = CoroutineItemState.Running; resumeCount = 1; } #if UNITY_EIDOTR tracer = new StackTrace(true); #endif }
//重新唤起执行 public void Resume() { if (state == CoroutineItemState.Running) { if (mCoroutiner != null) { Main.instance.StopCoroutine(mCoroutiner); } state = CoroutineItemState.Stop; } mIEnumber = targetDelegate.Method.Invoke(targetObject, args) as IEnumerator; //将委托绑定的方法转换程IEnumberator因为其返回类型为IEnumerator if (mIEnumber != null) { mCoroutiner = Main.instance.StartCoroutine(this); state = CoroutineItemState.Running; } #if UNITY_EIDOTR tracer = new StackTrace(true); #endif resumeCount++; }